Comunidad de diseño web y desarrollo en internet online

CDATA y nodeType = TextNode

Citar            
MensajeEscrito el 29 Jul 2008 07:14 am
Hola cristalaber@s.

Aunque llevo mucho tiempo leyendo CristaLab este es mi primer post. Antes de nada agradecer CristaLab y a todos sus foreros sus aportes ya que me habeis sacado de muchos apuros.

Mi caso es el siguiente. Tengo un cliente flash (programado en CS3 y AS2) que crea un XML en el que en algun momento hace...

Código :

[...]
profileNode = mainstructureXML.createElement("profile");

profileNode.attributes.headerTitle3=_root.myProfile["headerTitle3"];
profileNode.attributes.headerTitle2=_root.myProfile["headerTitle2"];
profileNode.attributes.headerTitle1=_root.myProfile["headerTitle1"];
profileNode.attributes.defaultImage=_root.myProfile["defaultImage"];

var textProfile:XMLNode = mainstructureXML.createTextNode("<![CDATA["+_root.myProfile["content"]+"]]>");
profileNode.appendChild(textProfile);
[...]


luego este cliente manda el XML a un script php que lo escribe en un fichero.

Aparentemente el XML está bien, pero el problema es que cuando lo leo, considera CDATA como texto y no como etiqueta.

Código :

[...]
trace(cNode.firstChild.nodeValue);
[...]


La salida del trace es <![CDATA[Texto de mi nodo con contenido HTML como <b>negrita</b>]]>
cuando debería ser el contenido del CDATA , "Texto de mi nodo con contenido HTML como <b>negrita</b>".

Indagando un poco he visto que el problema es que el builder XML de flash no es capaz de crear un CDATA Nodetype sino que los unicos elementos XML que puede crear son createTextNode y createElementNode. Por otro lado, la propiedad "nodeType" es sólo de lectura de manera que no podemos crear un nodo de text y luego cambiar su tipo.


¿Le ha pasado esto a alguien?

¿algun remedio aunque sea a través de php?

Por obi_juan_

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jul 2008 11:11 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Oct 2008 04:24 pm
Lo que necesitas es crear el XMLNode como CDATA, en el constructor de un nodo tipo XMLNode puedes indicarle el tipo (puedes ver todos los tipos en la ayuda de flash, sobre XMLNode como constructor). El tipo para CDATA es el 4, luego podría ser algo como esto:

nodoTemp = responseXML.createElement("colorCategoria");
nodoTextoTemp = new XMLNode(4, infoTemp.getColorCategoria());
nodoTemp.appendChild(nodoTextoTemp);
muebleTemp.appendChild(nodoTemp);

Por Qman

1 de clabLevel



 

firefox

 

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