Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/05/2007, 04:06
tammander
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Cargar BS con un asp

Hola!

Yo lo haria asi (en pseudocodigo)

1- Creacion de objetos necesarios:

Código:
' Creacion de documento XML
set paqueteXML = Server.CreateObject("MSXML2.DOMDocument")
paqueteXML.
Código:
async = False 
' Lectura de archivos dinamicos
Set peticion = Server.CreateObject("Microsoft.XMLHTTP")
' Objetos ADODB
set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
 
2- Lectura de la Base de Datos y apertura del archivo XML

Código:
conn.open "connection string"
set rs = conn.execute("SELECT * FROM bla bla bla ")

if not rs.eof then
     set root = paqueteXML.createelement("raiz")
     paqueteXML.appendchild(root)
3- Iteracion de los datos del recordset

Código:
do while not rs.EOF
4- Creacion de nodos

Código:
     set
Código:
nuevo_nodo = root.createNode(1, "noticia", "")
     root.appendChild(nuevo_nodo)
     
     ' resto de nodos
     set titulo_noticia = nuevo_nodo.createNode(1, "titulo", "")
     set titulo_texto = nuevo_nodo.createTextNode(rs("titulo"))
     titulo_noticia.appendChild(titulo_texto)
     nuevo_nodo.appendChild(titulo_noticia)

     ....


 
5- Lectura y ejecucion del archivo pertinente con objeto Microsoft.XMLHTTP

Código:
ss = PATHVIRTUALDELARCHIVO & rs("iddcontenido") & ".asp"
peticion.Open "POST", ss,False        
peticion.Send
respuesta = peticion.responseText
Código:
Set objNewCDATA = nuevo_nodo.createCDATASection(respuesta) 
nuevo_nodo.appendChild(objNewCDATA)

  
6 - Introducir el resto de los datos

Código:
  ' Creacion de nuevos elementos
7 - movimiento del cursor de rs, cierre de la iteracion (loop) y del condicional (end if)

Código:
     rs.moveNext()
loop

end if
8 - Guardar archivo XML

Código:
paqueteXML.save(PATHFISICOCONPERMISOS & "noticias.xml")
9 - Cierre y destruccion de objetos

Código:
rs.close()
set rs = nothing
conn.close()
set conn = nothing

set peticion = nothing

set paqueteXML = nothing


Para mas informacion sobre metodos y propiedades del MSXML2.DOMDocument

Mira este post sobre RSS: http://www.forosdelweb.com/f15/como-hacer-rss-asp-485196/

La causa de que use createCDATASection para el cuerpo de las noticias es que CDATA permite incorporar los caracteres de apertura/cierre de nodos <> sin modificarlos.



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -

Última edición por tammander; 08/05/2007 a las 04:31