Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   Parsear en orden inverso usando XMLDOM (http://www.forosdelweb.com/f14/parsear-orden-inverso-usando-xmldom-425453/)

Emerald 13/09/2006 09:58

Parsear en orden inverso usando XMLDOM
 
Estoy usando Microsoft.xmldom para parsear un XML y mostrar los datos en un ASP.

La estructura de mi XML es la siguiente:

Código:

<noticias>
    <noticia>
        <id>
        </id>
        <titulo>
        </titulo>
        <textos>
          <textoid>
          </textoid>
        </textos>
    </noticia>
  </noticias>


Hago el parseo y muestro los titulos de cada noticia, primero me trae el primer titulo que aparece en orden descendente, despues el segundo y así..

Pero quiero traerme primero el ultimo titulo, despues el penultimo, y así hasta llegar al primero, es decir, en orden inverso

Pero no se como hacer este parseo... alguna idea de como le puedo hacer?

Gracias!

monoswim 13/09/2006 19:23

XMLDOM es en javascript verdad ?

Si es así tienes el archivo cargado en memoria y puedes crear un array con getElementsByTagName verdad ?

Si es así, simmplemente hacé un bucle FOR que valla desde el último hacia el primero y listo...;-)

Espero que te sirva

Saludos

tunait 15/09/2006 03:16

Qué tal :-)

Emerald, no especificas en dónde estás realizando ese parseo, si en el servidor o en el navegador ni tampoco qué lenguaje de script estás usando.

Déjanos al menos ver el código que estás utilizando para hacerlo en orden descendente :arriba:

Un saludo :cool:

Emerald 13/10/2006 11:36

Hola!
Estoy intentando mostrar esto en un ASP y lo resolví de la siguiente manera:

Primero cuento cuantos nodos <titulo> tengo y le resto 1 para saber el index del último nodo <titulo>:

Código:

'Cargar el xml
Set xmlDoc = Server.CreateObject("Microsoft.xmldom")
servidor = Server.MapPath("Notice.xml")
xmlDoc.load(servidor)


set xmlTitArt = xmlDoc.getElementsByTagName("titulo")
n = (xmlTitArt.length-1)

Después hago lo siguiente dentro de un do while:

Código:

<%Do while n >= 0
  tituloArticulo = xmlTitArt.item(n).firstChild.nodeValue%>
  Titulo = <%= tituloArticulo%>
<%
n=n-1
Loop%>

Es decir, le voy restando 1 a n en cada vuelta, hasta llegar a n=0 que sería el primer nodo =)

No se si sea lo más optimo, pero al menos funcionó!


La zona horaria es GMT -6. Ahora son las 05:40.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.