Comunidad de diseño web y desarrollo en internet online

Mejor perfonmance para parsear xml

Citar            
MensajeEscrito el 21 Jun 2007 05:43 pm
Hola, tengo un largo xml que tiene nodos y atributos de nodos.
Example
<listado>
<lista id='0'>
<nombre>l</nombre>
</lista>
<lista id='1'>
<nombre>kk</nombre>
</lista>
</listado>
Este tiene como 150 o 200 "lista" y quiero aprender a parsear el contenido de este xml para poder hacer mas lijero el proceso de muestreo, lei algo de parseo en arrays pero era incompleto, me explicarian?
Muchas gracias.
Abrazo.

Por index000

24 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 25 Jun 2007 01:30 pm
Yo cuando tengo que hacer una aplicación, normalmente hago una clase que sea un "modelo" y contenga los datos, que serían arrays de objetos (para los que a veces también hago una clase, sólo con propiedades) que van cargados desde el xml.

Y lo de parsear, pues un par de for's: El primer elemento (listado, en tu caso) de tu xml se llama tuXML.firtsChild, cada uno de los nodos está en el array childNodes del objeto firstChild, y cada uno de los elementos puede tener otro array childNodes. Para parsear tu xml de manera sencilla, sería algo así:

Código :

var arr:Array=new Array();
tuXML.onLoad=function(){
var ln:Number=this.firstChild.childNodes.length;
for(var i:Number=0;i<ln;i++){
var ref= this.firstChild.childNodes[i];
var obj:Object=new Object()
obj.id=ref.attributes.id;
obj.nombre=ref.firstChild.firstChild.nodeValue;
arr.push(ref);
}
}


Y lo tendrías parseado en el array arr.

Nota:He escrito el código a pelo y puede haber errores.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 30 Jun 2007 03:02 am
Hola muchas gracias por tomarte el tiempo para responder, muchas veces uno no lo tiene.

Con respecto a el codigo funciono perfecto, pero no entiendo una parte.

1)Para que declaras este objeto?

Código :

obj.id = ref.attributes.id;
obj.nombre = ref.firstChild.firstChild.nodeValue;

2)Como deberia acceder a este resultado? asi?

Código :

arr[0], arr[1] etc


Por otro lado, si te queda un tiempo, me enseñas a buscar un dato dentro de un array?

Por index000

24 de clabLevel



Genero:Masculino  

firefox

 

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