Comunidad de diseño web y desarrollo en internet online

Recuperar atributos de un XML e introducirlos en un datagrid

Citar            
MensajeEscrito el 13 Sep 2008 11:31 am
Hola:

Estoy avanzando a machetazos, parece que cada nueva cosa que hago me sale otro problema, hasta el momento he podido con todos menos con este.

Tengo un XML tal que así:

<state name=\"California\">
<city nombre='San Francisco' />
<city nombre='San Diego' />
<city nombre='San Antonio' />
</state>


Lo cargo sin problemas, decido añadirle dos ciudades más (San Agustín y Santa Mónica) sin problema, se actualiza el valor de 3 a 5, perfecto, le pido que me muestre el último nodo, sin problemas... pero cuando le pido el atributo "nombre" de los recién ingresados me sale "undefined"

Me llevo leído dos veces las instrucciones, he consultado la página de Adobe, he mirado en tres tutoriales, he leído el último hilo de este foro hasta el final y no soy capaz de dar con lo que estoy haciendo mal. Mi código es este:

var xml_str:String = "<state name=\"California\"><city nombre='San Francisco' /><city nombre='San Diego' /><city nombre='San Antonio' /></state>";

//Añadimos dos ciudades nuevas
var my_xml:XML = new XML(xml_str);
trace(" XML antes de añadir:\n"+my_xml);
var nodo:XML = new XML("<city nombre='San Agustin' />")
my_xml.firstChild.appendChild(nodo)
trace("");
var nodo:XML = new XML("<city nombre='Santa Mónica' />")
my_xml.firstChild.appendChild(nodo)

//Vemos los resultados de texto y de nº de nodos
trace("XML después de añadir:\n"+my_xml);
var ciudadesf = my_xml.firstChild.childNodes.length
trace (ciudadesf)

//Los metemos en el Array y este en el datagrid
losDatos = new Array()
for (i=0; i< ciudadesf; i++){losDatos.addItem({id: i, ciudad: my_xml.firstChild.childNodes[i].attributes.nombre})}
listaCiudades.dataProvider = losDatos
trace (my_xml.firstChild.childNodes[(ciudadesf-1)].attributes.nombre)


Si alguien lo ejecuta, añadiendo un Data Grid llamado listaCiudades para que el código no se pierda, verá que pone cinco registros, pero los dos últimos vacíos, y el último "trace" da undefined.

¿Alguna ayuda de cómo recuperar el nombre de las ciudades?

Muchas gracias

Por Juliano

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Sep 2008 12:11 pm
En vez de agregar dos nodos al XML ´simplemente sigue usando addItem:

listaCiudades.addItem({id:3, ciudad:"San Agustin"})
listaCiudades.addItem({id:4, ciudad:"Santa Mónica"})

Modificar un XML runtime es bastante poco usual, eso ya lo verás en la práctica

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Sep 2008 11:40 am

solisarg escribió:

En vez de agregar dos nodos al XML ´simplemente sigue usando addItem:


Muchas gracias por contestarme y hacerlo tan rápido. Haré como me dices. Aunque siento que lo otro no se pueda, por evitar duplicar información :cry:

Muchas gracias otra vez y un saludo

Por Juliano

1 de clabLevel



 

firefox

 

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