Comunidad de diseño web y desarrollo en internet online

acceder a nombre nodos xml

Citar            
MensajeEscrito el 23 Ago 2010 05:18 pm
Que ondas flasheros, a los tiempos que vengo por aca, bueno mi pregunta.

Necesito acceder a los nodos de un XML, para obtener el nombre de este nodo en particular, revise el tutorial de xml, pero la diferencia es que tengo un XML mas complicado y no doy con la manera de obtener el nombre.

Este es el XML que estoy utilizando

Código :

<?xml version="1.0" encoding="utf-8"?><!-- Lineas Categorias Productos -->
<datos>
   <linea nombre="lineauno">
      <categoria nombre="categoriauno">
            <pro0 nombre="1-18" descripcion="d118-d118-d118-d118-d118" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
            <pro1 nombre="1-19" descripcion="d119-d119-d119-d119-d119" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
            <pro2 nombre="1-20" descripcion="d120-d120-d120-d120-d120" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
      </categoria>
   </linea>
   <linea nombre="lineados">
      <categoria nombre="categoriados">
            <pro0 nombre="1-18" descripcion="d118-d118-d118-d118-d118" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
            <pro1 nombre="1-19" descripcion="d119-d119-d119-d119-d119" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
            <pro2 nombre="1-20" descripcion="d120-d120-d120-d120-d120" material="0-1-4-6" color="1-3-5-7" tallas="1-2-3" fotos="r0_peq.jpg*r0.jpg" />
      </categoria>
   </linea>
</datos>

Necesito obtener los nombres de los nodos es decir "lineados" nombre del nodo linea y "categoriados" nombre del nodo categoria, y obviamente despues acceder a los atributos, el xml es generado mediante PHP sacando los datos de mysql

Por novaaavon

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Ago 2010 05:25 pm
Estube tratando revisando algunos ejemplos pero hasta ahora ninguno me funciona esto es lo que he probado

Código :

var xml:XML = new XML();
xml.ignoreWhite = true;

xml.onLoad = function() {
   var nodos = xml.childNodes;
   trace(nodos); //funciona tengo todos los nodos
   trace(nodos.datos.nombre.nodeValue); // no funciona
   trace(nodos.firstChild.childNodes[0].nodeValue); // no funciona
};

xml.load("pro.xml");

Por novaaavon

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ago 2010 04:05 pm
Bueno, les cuento, la idea es poder diferenciar los nodos, es decir tener control para ingresar en esta ruta por dar un ejemplo:

datos.lineauno.categoriauno.nombre.

Para poder hacer esto necesito saber obtener los nombre de los nodos, o existe otra forma.
Estoy abierto a sugerencias. Alguien me escucha

Por novaaavon

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ago 2010 04:29 pm
En el xml tienes los datos como atributos, no como valores de un nodo

debes usar attributes.nombre

Código ActionScript :

trace(xml.firstChild.childNodes[0].firstChild.childNodes[0].attributes.nombre);

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 24 Ago 2010 05:01 pm
Nasho... excelente..!!! ^^

funciona, pero existe alguna forma de preguntar si es de la categoriauno, muestre el producto de esa categoria, si es de la categoriados, pues que muestre el producto que corresponde.

el xml se genera con php desde mysql, estoy mandando los datos del xml a flash, inicialmente productos dentro de una categoria y esas categorias dentro de una linea.

Me puedes dar algunas luces... :? Gracias por responder :wink:

Por novaaavon

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ago 2010 05:14 pm
:?
en "lineauno" vas a tener "categoriauno", "categoriados",.... "categoriaN"??

a todo caso, veo que igual tienes el nombre de la categoria como atributo, solo debes leer el valor y hacer tu comparación

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 24 Ago 2010 05:28 pm
Nasho tienes mucha razon, :oops:

pero lo estube intentando y nada que funciona, mira tengo esto: :twisted:

Con esto consigo el nombre de la linea

Código :

trace(xml.firstChild.childNodes[0].attributes.nombre);//linea

Con esto el nombre del producto

Código :

trace(xml.firstChild.childNodes[0].firstChild.childNodes[0].attributes.nombre);//producto


Pero no puedo conseguir el nombre de la categoria :shock:

Por novaaavon

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ago 2010 05:31 pm

Código ActionScript :

trace(xml.firstChild.childNodes[0].attributes.nombre);//linea 0
trace(xml.firstChild.childNodes[0].firstChild.attributes.nombre);//categoría 0
trace(xml.firstChild.childNodes[0].firstChild.childNodes[0].attributes.nombre);//producto 0

trace(xml.firstChild.childNodes[1].attributes.nombre);//linea 1
trace(xml.firstChild.childNodes[1].firstChild.attributes.nombre);//categoría 1
trace(xml.firstChild.childNodes[1].firstChild.childNodes[0].attributes.nombre);//producto 0
trace(xml.firstChild.childNodes[1].firstChild.childNodes[1].attributes.nombre);//producto 1

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 24 Ago 2010 05:38 pm
:love: Bien...!!! funciona perfecto

Nasho te pasaste, :cool: , gracias por responder tan rapido.

Ahora siempre me gusta profundizar y conocer algo mas, algun tuto sobre lo que me acabas de enseñar. Me seria de gran utilidad

Muchas Gracias NASHO..!! :cool:

Por novaaavon

46 de clabLevel



Genero:Masculino  

firefox

 

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