Este es mi primer mensaje en este magnífico foro. Ya llevo un tiempo leyendo vuestros posts, y será un placer participar en él.
Tengo el siguiente archivo XML
Código :
Código:
<listaDeClientes> <cliente> <idcliente>1</idcliente> <nombre>Dan</nombre> <apellidos>Bus</apellidos> <telefono1>963344111</telefono1> <telefono2>656870650</telefono2> </cliente> <cliente> <idcliente>3</idcliente> <nombre>María</nombre> <apellidos>De la O</apellidos> <telefono1>963300444</telefono1> <telefono2>626670644</telefono2> </cliente> <cliente> <idcliente>6</idcliente> <nombre>Pablo</nombre> <apellidos>Tor</apellidos> <telefono1>9616233440</telefono1> <telefono2></telefono2> </cliente> </listaDeClientes>
Como ven bastante sencillo.
Ahora lo recorro en un bucle y le voy asignando los valores a unos arrays:
Código :
Código:
... largo = cargaXML.firstChild.childNodes.length; //Llenar los arrays de datos for (i=0; i<largo; i++){ idcliente_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.nodeValue; nombre_var[i] = cargaXML.firstChild.childNodes[i].firstChild.nextSibling.firstChild.nodeValue; apellidos_var[i]= cargaXML.firstChild.childNodes[i].firstChild.nextSibling.nextSibling.firstChild.nodeValue; telefono1_var[i]= cargaXML.firstChild.childNodes[i].firstChild.nextSibling.nextSibling.nextSibling.firstChild.nodeValue; telefono2_var[i]= cargaXML.firstChild.childNodes[i].firstChild.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue; ...
El caso es que el último campo del XML de cada hijo <cliente> no lo lee (devuelve 'undefined').
No hay manera para que lo lea. ¿me hechan un cable?
Creo que el problema es que no entiendo bien los xml.
Otra pregunta sería como evitar tanto nextSibling.
He intentado esto, pero no funciona:
Código :
Código:
idcliente_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.nodeValue; nombre_var[i] = cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[1].nodeValue; apellidos_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[2].nodeValue; telefono1_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[3].nodeValue; telefono2_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[4].nodeValue;
He visto varios tutos por la red pero no me aclaro. ¿Cómo lo ven? :?