logotipo de somoswifi.com

Anotaciones personales sobre tecnologías y estándares web, diseño, marketing y otros temas geek :)

Generar un XML con ASP y Access

publicado por sebas el 03-10-2008 Categoría: ASP 2 comentarios »

Aunque poco a poco me estoy desvinculando de ASP, hace poco me pedían unas cuantas líneas de código para generar un documento XML partiendo de los datos almacenados en una base de datos ACCESS.

4 pasos:

  1. Cabeceras
  2. Conexión a la base de datos
  3. Consulta a la base de datos
  4. Generar el árbol XML con los datos

Cosas básicas en ASP clásico:

  • Nada de puntos y coma al final de cada línea (no existen delimitadores de líneas)
  • Los nombres de variable no llevan ningún prefijo o carácter especial delante
  • Para comentar código se utiliza un apóstrofe justo delante de la frase a comentar. (nada al final)

estas tres cosas hacen que me parezca realmente cochinote este lenguaje.

El código siguiente se conecta a la base de datos “mis-libros” que está en el directorio “datos”, y se crea un XML con una colección de libros, y para cada libro se muestra: su isbn, su titulo y autor.

 
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
 
<%
Response.CharSet = "iso-8859-1"
response.ContentType = "text/xml"
 
set conn=Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0;"
conn.open
server.mappath("datos/mis-mibros.mdb")
 
consulta = "SELECT [libros].id, [libros].titulo, [libros].autor FROM libros"
set rs = Conn.Execute(consulta)
rs.MoveFirst()
 
response.write("<coleccion>")
 
while (not rs.EOF)
 
response.write("<libro>")
 
response.write("<id>" & rs("id") & "</id>")
response.Write vbCrLf
 
response.write("<titulo>" & rs("titulo") & "</titulo>")
response.Write vbCrLf
 
response.write("<autor>" & rs("autor") & "</autor>")
response.Write vbCrLf
 
response.write("</libro>")
 
rs.MoveNext()
wend
rs.close()
 
conn.close()
 
response.write("</coleccion>")
%>

Después de ejecutar este código se podría mostrar algo como esto:

 
<coleccion>
 
<libro>
<id>123-AAA</id>
<isbn>titulo abc</isbn>
<autor>autor A</autor>
</libro>
 
<libro>
<id>222-QWERT</id>
<isbn>titulo sss</isbn>
<autor>autor B</autor>
</libro>
 
<libro>
<id>333-RTC</id>
<isbn>titulo def</isbn>
<autor>autor C</autor>
</libro>
 
</coleccion>

Para hacer pruebas en local, sin necesidad de tener el servidor Microsoft IIS, recomiendo utilizar Baby server (http://www.pablosoftwaresolutions.com/html/baby_web_server.html).

Se trata de una alternativa gratuita y muy ligera. Por defecto tiene configurado como puerto de escucha el puerto 80, para evitar conflictos entre Apache y Skype, tuve que cambiarlo al 8080.

somoswifi.com © es un blog personal que trata sobre tecnologías web y temas geek :D
tecnológicamente gracias a Wordpress con un theme propio :)
Me hago resposable de los comentarios del blog, pero no del cambio climático.