Comunidad de diseño web y desarrollo en internet online

Solo aparece una etiqueta html en xml

Citar            
MensajeEscrito el 16 Ene 2010 10:40 am
Hola nuevamente a todos, después de ver la calidad de respuesta a mi pregunta anterior, me atrevo a solicitar ayuda nuevamente.

Quiero insertar una etiqueta html en un campo de texto, ya seleccione que sea rendereado como html, pero al en mi archivo de xml solo me permite poner una sola etiqueta y por la tanto ningun otro texto por ejemplo un parrafo con un link en el mismo parrafo.

Código XML :

<?xml version="1.0" encoding="UTF-8"?>
<xml>
   <title name="titulo pendiente">
      <comments>La piel del rostro en cada etapa de la vida requiere diferentes <![CDATA[<font color="#999999" face="Verdana" size="9"> Soluciones<font color="#ffffff"><7font>]]> aqui va mas informacion bla blaí.
      </comments>
      <image>img/mweb_belleza.png</image>
      <links><a href="http://www.yahoo.com">Yahoo</a></links>
   </title>
   <title name="mas texto">
      
      <image>img/foto_belleza.jpg</image>
   </title>
</xml>


en el tag de links si me aparece el link pero es lo unico, no puedo añadir otra etiqueta o texto normal, tambien intenté usar <![CDATA[ y tampoco funciona pues todo lo que esta después se desaparece.

Este es el AS de mi archivo que hice de otro tutorial

Código ActionScript :

//Create the XML Object
myXML = new XML()
myXML.ignoreWhite = true
//Load XML file
myXML.load("xml/DATA_C.xml")
//Make a reference to current timeline
myXML.ref = this
// Parse XML and fetch
myXML.onLoad = function(succes){
   if(succes){
      var root = this.firstChild
      nodes = root.childNodes
      for(var i=0; i<nodes.length; i++) {      
         this.ref["Title_txt"+i].text = nodes[i].attributes.name
         subnodes = nodes[i].childNodes
         this.ref["Comments_txt"+i].htmlText = subnodes[0].firstChild.toString()
         this.ref["Links_txt"+i].htmlText = subnodes[2].firstChild.toString()
         this.ref["holder_mc"+i].loadMovie(subnodes[1].firstChild.toString())
      }
   } else trace("Error loading XML document")


por lo que eh estado investgando algo tiene que ver con los nodos, intenté cambiarlos a .nodeValue pero ya no sé por donde buscarle.

Gracias por su tiempo y atención

Saludos

Por CLzangelx

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 16 Ene 2010 04:40 pm
Estas leyendo mal mal el XML. Deberías acceder así:

this.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue

Además deberías tener una estructura más prolija en tu XML

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 16 Ene 2010 11:33 pm
Hola Hernán.

Los siento pero no entiendo bien que es lo que debo de cambiar, ahora si dices que el xml esta mal hecho es que lo tome de un tutorial en la web podrías poner como es que tendrìa que quedar modificado el texto en el AS o como se deberia re ordenar el xml para que se vea más ordenado?

saludos y gracias por la atención

Por CLzangelx

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 17 Ene 2010 09:41 pm
Yo lo haría así:

Código XML :

<xml> 
   <contenido>
      <title>Titulo</title>
         <comments><![CDATA[La piel del rostro en cada etapa de la vida requiere diferentes <font color="#999999" face="Verdana" size="9"> Soluciones<font color="#ffffff"><7font>aqui va mas informacion bla blaí. ]]> </comments> 
         <image>img/mweb_belleza.png</image> 
         <links>www.yahoo.com</links> 
         <url_txt>Yahoo!</url_txt>
   </contenido>

   <contenido>
      <title>Titulo</title>
         <comments><![CDATA[La piel del rostro en cada etapa de la vida requiere diferentes <font color="#999999" face="Verdana" size="9"> Soluciones<font color="#ffffff"><7font>aqui va mas informacion bla blaí. ]]> </comments> 
         <image>img/mweb_belleza.png</image> 
         <links>www.yahoo.com</links> 
         <url_txt>Yahoo!</url_txt>
   </contenido>
 
</xml>


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 18 Ene 2010 06:16 am
hola nernan, gracias por tu interes y respuesta, cambie mi archivo como lo que sugieres pero ahora no me reconoce el flash nada de la información. lo unico que reconoce es lo de

<title>Titulo</title>

pero lo pone en el campo donde debería ir esto

<comments><![CDATA[La piel del rostro en cada etapa de la vida requiere diferentes <font color="#999999" face="Verdana" size="9"> Soluciones<font color="#ffffff"><7font>aqui va mas informacion bla blaí. ]]> </comments>

Todos los demas campos me aparecen como "undefined" incluso la imagen en png tampoco aparece

Cómo debe de quedar mi archivo de flash para que sea compatible con la estructura de xml que me sugieres?

por que incluso esta parte en el xml <url_txt>Yahoo!</url_txt> no la tengo ni como campo de texto en el flash y menos sé como incluirla en archivo flash

saludos y gracias por tu tiempo y atención

Por CLzangelx

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 18 Ene 2010 01:53 pm
Eso es porque cambie los path je. E incluso la lógica de carga en la parte de la URL

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 18 Ene 2010 03:48 pm
Hola Hernán gracias por responder, bueno entonces ya se por que no carga las cosas, pero entonces cómo de quedar el codigo AS en el flash para que funcione con la estructura que propusiste? podrías ayudarme con eso porque por ejemplo:

this.ref["Comments_txt"+i].htmlText = subnodes[0].firstChild.toString() - que es como venía el tutorial

es muy diferente a lo que eh visto y tratado entender de eso de los nodos, ya que varios tutoriales explican eso del los nodos, pero no indican mucho como vincularlos al campo de texto dinámico del flash. incluso varios archivos de ejemplo vienen vacios y solo con el codigo :S . y como funciona esa nueva parte de cagar de la URL?

pero pues si me gusta más tu estructura mucho más lógica que la original eso si, podrías ayudarme con el script de flash?

saludos y gracias por la atención

Por CLzangelx

5 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Ene 2010 03:36 am
XML es meramente datos, solo tienes que interpretarlos y usarlos como datos. Nada más. Busca en Google "Usar XML en Flash", ya que lo que te esta molestando a ti es que no has entendido el concepto de nodos. El cual si te pones a pensar, es bastante fácil.

La cuestión es que un nodo es un contenedor. Por lo cual si pongo:

Código XML :

<myxml>
</myxml>


Es nuestro primer nodo (firstChild), luego debo acceder dentro como lo hago con Arrays

Código XML :

<myxml>
   <titulo>Hola</titulo>
</myxml>


Debo seleccionar primer nodo, nodo 0 luego. O sea firstChild.childNodes[0].nodeValue

Y si quiero usarlo solo hago por ejemplo texto.text = nodo

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 19 Ene 2010 08:16 pm
Hola nuevamente gracias por contestar.

Creeme que lo eh intentado pero no logro captar como funciona eso de los nodos.

Podría pedir de favor si me ayudas con como debe quedar el codigo en base a como se llaman las instancias
comments_txt0, comments_txt1, holder_mc0, holder_mc1, title_txt1. ya sea con tu sugerencia de xml o el mio que esta menos ordenado?

Es que igual es facil para alguién que le sabe pero no lo es mucho para mi, a mi otre pregunta si le entendí rápido a la respuesta pero a este no :( . Y es que todo el problema es por que no puede meter texto en html sin que se desaparesca todo.

Saludos y gracias por tu tiempo.

Por CLzangelx

5 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 Ene 2010 11:38 pm
@CLzangelx, tu código está bien, es lo mismo guardar los arreglos obtenidos al acceder a la propiedad childNodes de un XMLNode en una variable para después utilizar este arreglo, que acceder directamente al nodo requerido especificando cada uno de los index. Es decir, es lo mismo decir:

Código ActionScript :

var root = this.firstChild;
nodes = root.childNodes;
trace(nodes);


Que decir

Código ActionScript :

trace(this.firstChild.childNodes);


El error está en tu XML y en un pequeño detalle en el código.

Cada vez que sitúes una etiqueta html debes cerrarla obligatoriamente para evitar errores, por lo tanto este nodo:

Código XML :

<comments>La piel del rostro en cada etapa de la vida requiere diferentes <![CDATA[<font color="#999999" face="Verdana" size="9"> Soluciones<font color="#ffffff"><7font>]]> aqui va mas informacion bla blaí.</comments> 


Debería quedar como:

Código XML :

<comments>La piel del rostro en cada etapa de la vida requiere diferentes<font color="#999999" face="Verdana" size="9"> Soluciones</font>aqui va mas informacion bla blaí.</comments> 


Y si quisieras tomar todo ese nodo e insertarlo en un campo de texto html y que respete tus tags, debes cambiar esta línea:

Código ActionScript :

this.ref["Comments_txt"+i].htmlText = subnodes[0].firstChild.toString();


por

Código ActionScript :

this.ref["Comments_txt"+i].htmlText = subnodes[0];


Aquí te dejo tu mismo código un poco más limpio y legible:

Código ActionScript :

//Create the XML Object 
myXML = new XML();
myXML.ignoreWhite = true;
//Load XML file 
myXML.load("xml/DATA_C.xml");
//Make a reference to current timeline 
var ref:MovieClip = this;
// Parse XML and fetch 
myXML.onLoad = function(succes:Boolean):Void {

   if (succes) {
      
      var nodes:Array = this.firstChild.childNodes;
      var subnodes:Array;
      var total:Number = nodes.length;
      
      for (var i = 0; i < total; i++) {
         
         subnodes = nodes[i].childNodes;
         
         ref["Title_txt"+i].text = nodes[i].attributes.name;         
         ref["Comments_txt"+i].htmlText = subnodes[0];
         ref["Links_txt"+i].htmlText = subnodes[2].firstChild.toString();
         ref["holder_mc"+i].loadMovie(subnodes[1].firstChild.toString());
      }
      
   } else {
      trace("Error loading XML document");
   }

};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.