Formatear XML
5 seguidores
Hola a todos! Tengo un problema. Veréis, tengo un formulario en el que el usuario puede escribir. Luego me gustaría guardarlo todo en un XML pero si el usuario ha escrito un "enter" (retorno de carro) el XML falla, claro. Qué puedo hacer?
Por orra parte, no quiero complicarme la vida mucho con este trabajo, así que he pensado que la panera de guardar el XML es enviarlo como cadena de texto a una página ASP y que esta me cree un archivo. Esto es correcto o es mucha chapuza?
pau
Lo que seguramente te ocurre es que guardas los valores de tu formulario como atributos de un fichero XML. Algo tipo:
<code><datos nombre="pepe" apellidos="potamo" comentarios="esto es un ..."/></code>
Para evitar que el fichero "XML falle" como tu dices, deberías guardar los campos en nodos independientes. Algo tipo:
<code><datos>
<nombre>pepe</nombre>
<apellidos>potamo</apellidos>
<comentarios>esto es un ...
comentario ...
... con muchas líneas
</comentarios>
</datos></code>
Este XLM es correcto y no debería fallar. Si no es eso ... :( entonces cuenta mejor lo que te ocurre y veremos que se puede hacer.
Espero que te sirva.
playground
Muchas gracias Pau. Esa debe de ser la solución. Yo siempre estructuro los XML así y no me había puesto a pensar en la otra forma. Gracias colega!!
playground
Efectivamente era eso. Ahora lo que sucede (problema de flash supongo porque no es la primera vez) es que si en el XML hay algún retorno de carro, flash lo toma como si fueran dos. Esto por qué es? Hay solución?
lemark
has probado a poner el metodo ignoreWhite en true?
<code>tu_XML.ignoreWhite=true</code>
Creo q con eso deberia valer. Así no considera los espacios en blanco como nodos de texto.
desmond_dekker
en el xml sacalo como UTF 8 y en el flash al objeto xml le pones como te indican lo de ignoreWhite=true;
con eso te funciona.
playground
BUeno ya lo he solucionado de otra manera. Pero por simple curiosidad, a mi eso no me funciona, es decir, si tengo una cadena de texto que llega a flash desde el xml y en esta cadena, en mitad de una frase, por ejemplo, tengo un retorno de carro, en el cuadro de texto de la película me salen dos.
gauss control
a mi me pasa lo mismo.... y que rabia da!
gauss control
cuando estamos recogiendo los datos del XML ...
<code>
obj_xml.firstChild.childNodes[1].firstChild.nodeValue.split('\r\n').join('\n');;
updateAfterEvent();
</code>