Hola:
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");
¿Será a caso la misma estructura del XML? ¿Debería de poner la pregunta dentro de otro nodo?
Gracias.