Se me presenta un problema en la lectura de un XML con la siguiente estructura:
Código HTML:
<?xml version="1.0" encoding="utf-8"?> <trivia> <pregunta>Pregunta 1 <respuesta valor="cierto">Cierto</respuesta> <respuesta valor="falso">falso</respuesta> <respuesta valor="falso">falso</respuesta> </pregunta> <pregunta>Pregunta 2 <respuesta valor="cierto">Cierto</respuesta> <respuesta valor="falso">falso</respuesta> <respuesta valor="falso">falso</respuesta> </pregunta> <pregunta>Pregunta 3 <respuesta valor="cierto">Cierto</respuesta> <respuesta valor="falso">falso</respuesta> <respuesta valor="falso">falso</respuesta> </pregunta> </trivia>
El problema es que teniendo varios elementos, flash no lee el número exacto. Siempre devuelve: elementos - 1. Es decir, si tengo 20 elementos, devuelve 19.
El código para leer el XML es este:
Código PHP:
//Cargar XML de los trivia
trivia = new XML();
trivia.ignoreWhite = true;
trivia.onLoad = function (success){
//Porcentajes de carga
totalxml = trivia.getBytesTotal();
cargadoxml = trivia.getBytesLoaded();
porcentajexml = Math.round((cargadoxml/totalxml)*100);
//Si esta cargado del todo
if (porcentajexml >= 100) {
//Cogemos el numero de noticias
long = trivia.firstChild.childNodes.length;
preguntas = new Array();
respuestas1 = new Array();
respuestas2 = new Array();
respuestas3 = new Array();
//Shortcuts del XML
for (i=0; i<long; i++) {
preguntas[i] = trivia.firstChild.childNodes[i].firstChild.nodeValue;
respuestas1[i] = trivia.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;
respuestas2[i] = trivia.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue;
respuestas3[i] = trivia.firstChild.childNodes[i].childNodes[3].firstChild.nodeValue;
}
montarPreguntas();
}
}
//Cargamos el XML
trivia.load("archivo.xml");
Gracias.