Comunidad de diseño web y desarrollo en internet online

Necesito ayuda para parsear un XML

Citar            
MensajeEscrito el 27 Ene 2015 08:33 pm
No consigo terminar de parsear un xml que tengo. Este:

Código XML :

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<mapa>
   <poligono>
      <region>
         Groenlandia
      </region>
      <vertice>
         <x>0.307</x>
         <y>0.128</y>
      </vertice>
      <vertice>
         <x>0.356</x>
         <y>0.138</y>
      </vertice>
      <vertice>
         <x>0.345</x>
         <y>0.215</y>
      </vertice>
      <vertice>
         <x>0.289</x>
         <y>0.278</y>
      </vertice>
      <vertice>
         <x>0.244</x>
         <y>0.170</y>
      </vertice>
   </poligono>
   <poligono>
      <region>
         Islandia
      </region>
      <vertice>
         <x>0.416</x>
         <y>0.194</y>
      </vertice>
      <vertice>
         <x>0.422</x>
         <y>0.228</y>
      </vertice>
      <vertice>
         <x>0.396</x>
         <y>0.245</y>
      </vertice>
      <vertice>
         <x>0.365</x>
         <y>0.234</y>
      </vertice>
      <vertice>
         <x>0.367</x>
         <y>0.195</y>
      </vertice>
   </poligono>
   <poligono>
      <region>
         Reino Unido
      </region>
      <vertice>
         <x>0.420</x>
         <y>0.263</y>
      </vertice>
      <vertice>
         <x>0.446</x>
         <y>0.348</y>
      </vertice>
      <vertice>
         <x>0.401</x>
         <y>0.370</y>
      </vertice>
      <vertice>
         <x>0.369</x>
         <y>0.356</y>
      </vertice>
      <vertice>
         <x>0.406</x>
         <y>0.261</y>
      </vertice>
   </poligono>
</mapa>

Consigo llenar un array multidimensional, listaPoligonos[], con todos los vértices bien ordenados así:

Código ActionScript :

var _xml:XML;
_xml = XML(e.target.data);
_xml.ignoreWhite = true;
for (var i:int = 0; i < _xml.poligono.length(); i++)
{
   listaPoligonos.push(new Array());
   for each (var poli:XML in _xml.poligono[i].vertice)
   {
      (listaPoligonos[i] as Array).push({ x:Number(poli.x), y:Number(poli.y) });
   }
}

...pero no logro meter los nombres de las regiones en otro array normal (de un subíndice).
He probado de todo y nada. Si algún experto en xml me echa una mano le estaré muy agradecido ^^

Por Unukalhai

79 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Ene 2015 08:56 pm
Declara al principio el array

Código ActionScript :

var regiones:Array = new Array();


Y agrega esta línea

Código ActionScript :

listaPoligonos.push(new Array());
regiones.push(_xml.poligono[i].region)


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 Ene 2015 12:00 am
Ahora funciona. Gracias Solisarg, que grande que eres. :D
Al parecer el problema era que había declarado el array así:

Código ActionScript :

var regiones:Array = []

en lugar de:

Código ActionScript :

var regiones:Array = new Array()

Ciao :wink:

Por Unukalhai

79 de clabLevel



 

firefox

 

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