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

Leer XML

Estas en el tema de Leer XML en el foro de Flash y Actionscript en Foros del Web. ayuda porfa necesito saber cómo acceder nodos de texto, tengo el siguiente XML tengo: mi_xml = new XML(); que contiene: Código HTML: <album> <foto id='1'> ...
  #1 (permalink)  
Antiguo 03/09/2005, 20:36
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
Leer XML

ayuda porfa
necesito saber cómo acceder nodos de texto, tengo el siguiente XML
tengo:

mi_xml = new XML();

que contiene:
Código HTML:
<album>
<foto id='1'>
	<fotografo>Markos Tal Cual</fotografo>
</foto>
<foto id='2'>
	<fotografo>Otro fotografo</fotografo>
</foto>
</album> 
y puedo acceder a los atributos así:
Código:
for(m=0;m<mi_xml.firstChild.childNodes.length;m++){
trace(mi_xml.firstChild.childNodes[m].attributes.id);
}
lo que no sé es cómo acceder a 'Markos Tal Cual' y 'Otro fotografo', osea al contenido entre los tags <fotografo></fotografo>
  #2 (permalink)  
Antiguo 04/09/2005, 09:08
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Para esto no vi necesario el modo como tienes las estructura de tu XML, asi que lo reformule del siguiente modo:

Código:
<?xml version="1.0" encoding="utf-8" ?>
<album>
	<foto id='1'>Markos Tal Cual</foto>
	<foto id='2'>Otro Fotografo</foto>
	<foto id='3'>Otro más</foto>
</album>
Y lo llame "datosFotografos.xml" para mi ejemplo. Luego escribi el siguiente AS en un frame del root:

Código:
stop();
//
//
dataXML = new XML();
dataXML.ignoreWhite = true;
dataXML.load("datosFotografos.xml");
dataXML.onLoad = function() {
	//
	iniNodos = dataXML.firstChild;
	nodos = new Array();
	nodos = iniNodos.childNodes;
	cantNodos = nodos.length;
	trace("cantNodos = "+cantNodos+"\n---------");
	//
	for (i=0; i<cantNodos; i++) {
		//
		_root["id"+i] = nodos[i].attributes.id;
		trace("id = "+_root["id"+i]);
		//
		_root["fotografo"+i] = nodos[i].firstChild.nodeValue;
		trace("fotografo = "+_root["fotografo"+i]+"\n---------");
	}
	//
	play();
};
Si eso no te funciona y necesitas que el XML permanezca como lo tenias originalmente, solo dilo por aqui, pero esto que te envio hace perfectamente su trabajo.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #3 (permalink)  
Antiguo 04/09/2005, 13:04
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
nodeValue

Cita:
Iniciado por junihh
Para esto no vi necesario el modo como tienes las estructura de tu XML, asi que lo reformule del siguiente modo:
lo de la estructura del XML era para explicar cómo acceder a tal valor
...mi XML tiene mas estructura y lo genero ahora solo con atributos, ya que no podía acceder a los valores indicados y tmb porque he leido que para flash es más rapido acceder a los ATRIBUTOS...

anteriormente había probado accediendo con nodeValue pero no me imprimía el resultado esperado...
creo entener el problema que tenía... aclarenme si me equivoco
cada childNondes[n] pose un firstChild y nodeValue se aplica a éste ultimo:
carrecto: childNondes[n].firstChild.nodeValue
incorrecto: childNondes[n].nodeValue
?
:D
  #4 (permalink)  
Antiguo 04/09/2005, 15:33
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Este es el modo correcto: childNondes[n].firstChild.nodeValue;
__________________
JuniHH
- Mi blog
- Mi portafolio
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 23:16.