Foros del Web » Creando para Internet » Flash y Actionscript »

Recorrer un XML

Estas en el tema de Recorrer un XML en el foro de Flash y Actionscript en Foros del Web. Tengo este archivo de XML.. y lo que quiero hacer poder recorrerlo pero no lo he logrado.. puedo conocer la cantidad de registros en este ...
  #1 (permalink)  
Antiguo 19/06/2006, 16:49
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Pregunta Recorrer un XML

Tengo este archivo de XML.. y lo que quiero hacer poder recorrerlo pero no lo he logrado.. puedo conocer la cantidad de registros en este caso 2 y solo puedo lograr obtener el primer registro, pero el segundo no.. alguien sabe algo sobre como hacerlo y me hecha una mano ?

Código:
<?xml version="1.0" encoding="utf-8"?>
  <escenario>
    <id>166</id>
    <despiece>true</despiece>
  </escenario> 
  <escenario>
    <id>254</id>
    <despiece>true</despiece>
  </escenario>
  #2 (permalink)  
Antiguo 19/06/2006, 17:28
 
Fecha de Ingreso: enero-2006
Mensajes: 51
Antigüedad: 18 años, 3 meses
Puntos: 0
<?xml version="1.0" encoding="utf-8"?>
<escenario>
<id>166</id>
<despiece>true</despiece>
</escenario>
<escenario>
<id>254</id>
<despiece>true</despiece>
</escenario>
//asi lo recorres

var items = menu_xml.firstChild.childNodes;
var item_spacing = 25;
var item_count = 0;
for(var i = 0; i<items.length; i++) {
var id = items[i].firstChild;
var despiece = items[i].childNodes[2];

//luego podrias asignar esos valores kon un attachmovie para meterlos en flash en distintas movies porke imagino ke eso sera tu siguente paso


var item_mc = list_mc.attachMovie ("nombre","btn"+item_count, item_count);
item_mc._y = item_count * item_spacing;
item_count++;

item_mc.id.text = id.firstChild.nodeValue;
item_mc.despiece = despiece.firstChild.nodeValue;
}
te faltaria cargar el xml y llamarlo menuxml pero eso sabras hacerlo
espero haberte sido de ayuda.
  #3 (permalink)  
Antiguo 19/06/2006, 17:47
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
En si lo que necesito es guardar el ID en un arreglo todos aquellos escenarios que tienen un valor de despiece igual a true. Hasta ahorita he llegado aqui, pero sigo sin obtener lo que deseo.. otra idea charlierun..

Código:
var rootList:XMLNode = this.firstChild;
var lista:Array = obj_xml.childNodes;		
// lista.length es el numero de despieces
// rootList.childNodes.length es el numero de items dentro del despiece
for (var i = 0; i<lista.length; i++) {
  for (var j = 0; j<rootList.childNodes.length; j++) {
    
  }
}

Última edición por erlingfiallos; 19/06/2006 a las 17:53
  #4 (permalink)  
Antiguo 19/06/2006, 18:02
 
Fecha de Ingreso: enero-2006
Mensajes: 51
Antigüedad: 18 años, 3 meses
Puntos: 0
if (despiece.firstChild.nodeValue=true){
item_mc.depiece=despiece.firstChild.nodeValue;
}
algo asi??
  #5 (permalink)  
Antiguo 19/06/2006, 18:09
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Ahora se que los ciclos que escribi abajo estan bien, pero como accedo a los valores usando los ciclos anidados.. o acaso no son necesarios ?
  #6 (permalink)  
Antiguo 19/06/2006, 21:25
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
De acuerdo

Bueno, despues de varios intentos y de mucha investigacion el codigo ha sido logrado y lo que queria hacer lo consegui satisfactoriamente.. igualmente como siempre que logro algo lo comparto pues aqui esta el final de mis neuronas.. Este codigo va dentro de la funcion load del objeto XML.

Código:
var almacenaID:Array = new Array();
var lista:Array = obj_xml.childNodes;
  for (var i = 0; i<lista.length; i++) {
    if (String(lista[i].childNodes[1].firstChild.nodeValue) == "true"){
      _root.almacenaID.push(String(lista[i].childNodes[0].firstChild.nodeValue));
    }
}
y con esto logro seleccionar los ID de cada escenario y si estan a true los guardo en el arreglo almacenaID.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:30.