Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2010, 06:29
Mexman
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
Bucle ASP con XMLDOM

Hola este ejemplo lo diseño en su día para que me cargara las variables desde una base de datos ACCES, el problema posterior es que me daba un error asíncrono entre el servidor y el cliente, ya que uso un JQuery para cargar la galería, así que tras mucho intentarlo he desisitido de cargar los datos desde la base de datos y decidí hacer lo siguiente:

Usar un XML como comodín. Donde con otro script exporto los datos de la BD y los grabo en un XML. Acto siguiente para leerlo desde el Navegador llamo a ese XML y así resuelvo el asincronismo.

En resumen:

El caso es que ando muy perdido con XLDOM y sobre todo con el DO WHILE porque no se como estructurar el dichoso Bucle con XML para que me lea los datos del XML. Estoy leyéndome el FAQ de XLDOM, estoy googleando a muerte y también he mirado aquí en antiguos post y sigo en las mismas.


Este es el codigo:

Código ASP:
Ver original
  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
  2. <!-- ////////////////////////////////////////////////// START ///////////////////////////////////////////////////////// -->
  3. <div id="seccion">
  4.     <%
  5.         ' Variables.
  6.             Dim xml, oXml  
  7.             Dim v_id, v_link, v_titulo, v_seccion, v_describe
  8.             Dim Salto              
  9.         'Asigno Variables. 
  10.              items = "items"
  11.                  i = 1
  12.               v_id = xml.documentElement.childNodes(0).text '"v_id"
  13.             v_link = xml.documentElement.childNodes(1).text '"v_link"
  14.          v_seccion = xml.documentElement.childNodes(2).text '"v_seccion"
  15.           v_titulo = xml.documentElement.childNodes(3).text '"v_titulo"            
  16.         v_describe = xml.documentElement.childNodes(4).text '"v_describe"
  17.              Salto = Replace (cadena, vbCrLf, "<BR>")
  18.  
  19.         'Creo el objeto de XMLDOM
  20.             Set xml = Server.CreateObject("Microsoft.XMLDOM")
  21.         'No dejo que el archivo se edite si está en uso
  22.             xml.async = False
  23.         'Cargo el archivo
  24.             xml.load (Server.MapPath("./db/vid.xml"))
  25.    
  26.         'Si el archivo XML tiene errores
  27.             If xml.parseError.errorCode <> 0 Then
  28.                 Response.Write("<p> Hay un error en el archivo XML: <b>" "<p>")  
  29.                 Response.Write("<b>"& xml.parseError.reason &  xml.parseError.line & xml.parseError.linepos)
  30.                 Response.End
  31.             End If  
  32.            
  33.         'Si no contiene errores continuo. Creo un objeto XML y ejecuto la orden.
  34.             Set oXML = xml.getElementsByTagName(items+i)
  35. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''     BUCLE     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  36.         'Recorre todas las filas del resultado
  37.             Do While Not oXML.EOF
  38.     %> 
  39.         <div id="demo">
  40.                 <ul>
  41.                     <li><%= v_id %>º</li>
  42.                     <li><%= v_link %></li>
  43.                     <li><%= v_seccion %></li>
  44.                     <li><%= v_titulo %></li>
  45.                     <li><%= v_describe %></li>                                     
  46.                 </ul>
  47.         </div>
  48.     <%
  49.         'Pasa a la siguiente fila
  50.             oXML.MoveNext()
  51.             i=i+1
  52.             Loop
  53. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''     BUCLE     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  54.         'Libera memoria            
  55.             oXML.Close
  56.             Set oXML = Nothing
  57.             xml.Close
  58.             Set xml = Nothing
  59.            
  60.         'Cerramos variables
  61.             Set v_id = Nothing
  62.             Set v_link = Nothing
  63.             Set v_titulo = Nothing
  64.             Set v_seccion = Nothing
  65.             Set v_describe = Nothing
  66.     %>
  67. </div>
  68. <!-- ////////////////////////////////////////////////// FIN ///////////////////////////////////////////////////////// -->

El archivo XML sería este:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2.      <items>
  3.     <item>
  4.         <v_id>1</v_id>
  5.         <v_link>http://www.youtube.com/watch?v=qMlmcQTN-Es</v_link>
  6.         <v_titulo>Título.</v_titulo>
  7.         <v_seccion>Sección.</v_seccion>
  8.         <v_describe>Descripción.</v_describe>
  9.     </item>
  10.     <item>
  11.         <v_id>2</v_id>
  12.         <v_link>http://www.youtube.com/watch?v=qMlmcQTN-Es</v_link>
  13.         <v_titulo>Título.</v_titulo>
  14.         <v_seccion>Sección.</v_seccion>
  15.         <v_describe>Descripción.</v_describe>
  16.     </item>
  17.     </items>

De verdad Mil gracias si me podéis echar un cable.
Saludos.