Comunidad de diseño web y desarrollo en internet online

Problemas al cargar un xml

Citar            
MensajeEscrito el 28 Nov 2005 03:41 pm
Saludos, estoy haciendo un proyecto trabajando con xml, pero tengo un problema con el que no doy solución. Os cuento:
Intento recorrer un xml que carga en flash, pero si lo que hago es una carga del archivo xml (externo), me lo captura, pero no me deja recorrerlo; mientras si lo "meto" dentro del código, no tiene problemas.
Os pongo los códigos:
Script en flash con el xml dentro:

Código :

var ValoresXML:String = "<libros><libro><autor>Mark Twain</autor><titulo>Hackleberry Finn</titulo></libro><libro><autor>Cervantes</autor><titulo>El Quijote</titulo></libro></libros>"
var xmlVal:XML = new XML(ValoresXML);

var xmlRoot:XMLNode = xmlVal.firstChild;
trace(xmlRoot.nodeName);
var xmlLibro:XMLNode = xmlRoot.firstChild;
trace(xmlLibro.nodeName);
var xmlAutor:XMLNode = xmlLibro.firstChild;
trace(xmlAutor.nodeName);
De esta forma, no tengo problemas al mostrar los nombres de los nodos ...

Pero si lo hago de esta otra:

Código :

var xmlVal:XML = new XML();
xmlVal.load("xml2.xml");
xmlVal.onLoad = function(bSuccess:Boolean):Void{
   if(bSuccess){
   trace(this.toString());
   }
   else{
      trace("Error en la lectura del xml");
   }
};
var xmlRoot:XMLNode = xmlVal.firstChild;
trace(xmlRoot.nodeName);
var xmlLibro:XMLNode = xmlRoot.firstChild;
trace(xmlLibro.nodeName);
var xmlAutor:XMLNode = xmlLibro.firstChild;
trace(xmlAutor.nodeName);
... me carga el xml (si hago un trace(this.toString()); me lo muestra entero),pero me dice undefinied en cuanto a los nodos.

El archivo xml2.xml es:

Código :

<?xml version="1.0" encoding="iso-8859-1"?>
<libros>
<libro>
<autor>Mark Twain</autor>
<titulo>Hackleberry Finn</titulo>
</libro>
<libro>
<autor>Cervantes</autor>
<titulo>El Quijote</titulo>
</libro>
</libros>


¿Por qué ...?

Gracias

[moderador] corregida etiqueta code [/code]

Por AguaRas

93 de clabLevel



 



Ultima edición por AguaRas el 28 Nov 2005 03:46 pm, editado 1 vez

msie
Citar            
MensajeEscrito el 28 Nov 2005 04:22 pm
Prueba a poner:

Código :

objetoXML.ignoreWhite = true;

Debes ponerlo antes de llamar a la función load(). Así le indicas a Flash que ignore los espacios en blanco del documento XML, y generalmente te evitas problemas al cargarlo.

Por Gengis

27 de clabLevel



 

Córdoba(España)

firefox
Citar            
MensajeEscrito el 28 Nov 2005 06:50 pm
Ya he encontrado el erro, por si sirve a alguien ...
Tengo que meter el "desplazamiento" por el XML (firstchild, nodename ...) dentro de la función onload().
De esta forma sí me funciona ....

Por AguaRas

93 de clabLevel



 

msie

 

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