Comunidad de diseño web y desarrollo en internet online

problema recorriendo XML con as2

Citar            
MensajeEscrito el 07 Sep 2011 01:56 am
Hola a todos,
tengo un problema tratando de acceder a la 2da noticia de este XML, en AS2:
Código HTML:

Código ActionScript :

<noticia>
      <titulo>Titulo 1</titulo>
      <autor>Autor 1</autor>
      <fecha>Fecha 1</fecha>
<noticia>
<noticia>
      <titulo>Titulo 2</titulo>
      <autor>Autor 2</autor>
      <fecha>Fecha 2</fecha>
<noticia> 


Para la primera uso obj_xml.firstChild.childNodes[X].firstChild.nodeValue pero para la segunda?? Tendría que cambiar algo en el 1° firstChild, probé ponerle [0], [1], pero no funciona...


Gracias por la ayuda!

Por nico_metri

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Sep 2011 04:48 am
Hola.
De la forma en que lo estas haciendo, se repiten datos como noticia, fecha, autor y título, constantemente y con ello lo que haces es darle mas Kb al xml de los necesarios.

La forma correcta (se puede hacer de muchas formas) sería esta:

<?xml version="1.0" encoding="UTF-8"?>
<a><m Nodo="0" >
<n ID="0" N="noticia 1" T="Titulo 1" A="Autor 1" F="Fecha 1" />
<n ID="1" N="noticia 2" T="Titulo 2" A="Autor 2" F="Fecha 2" />
<n ID="2" N="noticia 3" T="Titulo 3" A="Autor 3" F="Fecha 3" />
</m><m Nodo="1" >
<n ID="0" N="noticia 1" T="Titulo 1" A="Autor 1" F="Fecha 1" />
<n ID="1" N="noticia 2" T="Titulo 2" A="Autor 2" F="Fecha 2" />
<n ID="2" N="noticia 3" T="Titulo 3" A="Autor 3" F="Fecha 3" />
</m></a>
Hay que tener en cuenta que siempre se empieza en 0
Esto no es necesario ponerlo, solo es para que lo entiendas: ID="0" , ID="1" , ID="2"
Esto tampoco hace falta: Nodo="0" , Nodo="1"

Este seria para el ejemplo que tu pones.
<?xml version="1.0" encoding="UTF-8"?>
<a><m>
<n T="Titulo 1" A="Autor 1" F="Fecha 1" />
<n T="Titulo 2" A="Autor 2" F="Fecha 2" />
<n T="Titulo 3" A="Autor 3" F="Fecha 3" />
</m><m>
<n T="Titulo 1" A="Autor 1" F="Fecha 1" />
<n T="Titulo 2" A="Autor 2" F="Fecha 2" />
<n T="Titulo 3" A="Autor 3" F="Fecha 3" />
</m></a>

Con esto - </m><m> - lo que hacemos es añadir mas grupos de noticias.
De forma que podemos tener diferentes grupos de noticias y dentro de cada uno los títulos correspondientes

El xml es muy flexible y se puede montar como uno quiera, cuando se entiende y domina.
XML es de Windows y se utiliza que yo sepa, desde windows 95 en todas sus versiones, incluido Win7, dentro de su sitema operativo.
Todas las versiones de Flash incluida CS5, también lo utiliza.

Salu2
Cuae

Por Cuae

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 07 Sep 2011 10:23 am
Si tienes muchas noticias, tendras que usar un bucle 'for'.
Si solo quieres acceder a la segunda, agrega un 'nextSibling':

Código ActionScript :

obj_xml.firstChild.childNodes[X].firstChild.nextSibling.nodeValue;

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 07 Sep 2011 07:56 pm

Cuae escribió:

De la forma en que lo estas haciendo, se repiten datos como noticia, fecha, autor y título, constantemente y con ello lo que haces es darle mas Kb al xml de los necesarios.

Gracias Cuae, es que también tengo que poner la descripción de la noticia entonces esa forma no se me hace muy conveniente además de tener que cambiar todo el script...

Acreonte escribió:

Si tienes muchas noticias, tendras que usar un bucle 'for'.
Si solo quieres acceder a la segunda, agrega un 'nextSibling':

Código ActionScript :

obj_xml.firstChild.childNodes[X].firstChild.nextSibling.nodeValue;

Gracias Acreonte, no me ha funcionado eso de nextsibling, sin embargo si era mi idea usar un bucle for para recorrer las 2 (por ahora) noticias, el tema es que no sé en que parte de poner la variable para que en la primera recorrida lea la primera noticia y en la segunda vuelta lea la segunda. Lo que a mi se me había ocurrido es, como siempre, usar una variable i como contador y ponerlo así:
obj_xml.firstChild[i].childNodes[X].firstChild..nodeValue;

Pero no funciona... Dónde tendría que ponerlo?


Gracias!

Por nico_metri

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Sep 2011 05:03 pm
Hola.

<n T="Titulo 1" A="Autor 1" F="Fecha 1" D="Descripción y puedes pones todo el texto que quieras"/>

A cada item, le puedes añadir todas las etiquetas que quieras, es lo bueno del XML, que lo moldeas como tu quieras.

Estra en tu carpeta de instalación de Flash que es esta ruta:
C:\Documents and Settings\TU USUARIO\Configuración local\Datos de programa\Macromedia\Flash 8\en

Realiza una busqueda de .xml
Mira como son los los XML profesionales.

De la forma que lo estas haciendo, te estas acostrumbrando a hacer las cosas como lo hacian los dinosaurios.

Salu2

Cuae

Por Cuae

29 de clabLevel



 

msie8

 

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