Foros del Web » Programando para Internet » ASP Clásico »

ASP que genere XML a partir de consulta SQL

Estas en el tema de ASP que genere XML a partir de consulta SQL en el foro de ASP Clásico en Foros del Web. Hola buenas, les pongo una duda que tengo que no consigo resolver a pesar de darle muchas vueltas: Tengo que generar dinamicamente un XML (tb ...
  #1 (permalink)  
Antiguo 30/06/2010, 03:54
 
Fecha de Ingreso: junio-2010
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
ASP que genere XML a partir de consulta SQL

Hola buenas, les pongo una duda que tengo que no consigo resolver a pesar de darle muchas vueltas:

Tengo que generar dinamicamente un XML (tb un RSS) a partir de una base de datos SQL Server . He pensado que la mejor forma de hacerlo es utilizando ASP ya que no tengo permitido hacerlo con PHP.

Buscando en el foro he encontrado un ejemplo de lo que quiero hacer con PHP: [URL="http://www.desarrolloweb.com/articulos/crear-rss-php-mysql.html"]http://www.desarrolloweb.com/articulos/crear-rss-php-mysql.html[/URL]

Y otro ejemplo haciendolo con ASP pero con una base access: [URL="http://www.w3schools.com/xml/xml_server.asp"]http://www.w3schools.com/xml/xml_server.asp[/URL]

Lo que no consigo es a partir de éste segundo ejemplo realizar la consulta a la base de datos de SQL Server en lugar de hacerlo para la de access.

Alguien podría indicarme como conecto, hago la consulta y saco los datos para la base de SQL? O si alguien tiene algun ejemplo que haga lo que estoy buscando.

Muchas gracias por la ayuda
  #2 (permalink)  
Antiguo 02/07/2010, 07:00
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: ASP que genere XML a partir de consulta SQL

movido desde xml
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 02/07/2010, 11:50
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: ASP que genere XML a partir de consulta SQL

Primero de todo, el archivo rss.asp tienes que guardarlo en formato UTF-8, guardar como y fijate bien (la mayoria de editores tiene esta opcion).


la cabecera del documento fija:

Código:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
seguimos:

empieza el asp propiamente

Código:
<%
Response.ContentType="text/xml"

'=====================================================
' limpio caracteres raros no aceptados en xml
function limpio(str)
str=replace(str,"' ","'")
str=replace(str,"’","'")
str=replace(str,"`","'")
str=replace(str,"’","'")
str=replace(str,"´","'")
str=replace(str,"'","'")
limpio = str
end function
'=====================================================
' fechas hay que ponerlas en el formato xml, si no es el caso no hace falta
'*****************************************************************
function AbbrDia(numDia)
     select case numDia
         case 2
             AbbrDia = "Mon"
         case 3
             AbbrDia = "Tue"
         case 4
             AbbrDia = "Wed"
         case 5
             AbbrDia = "Thu"
         case 6
             AbbrDia = "Fri"
         case 7
             AbbrDia = "Sat"
         case 1
             AbbrDia = "Sun"
     end select 
end function
function AbbrMes(numMes)
     select case numMes
         case 1
             AbbrMes = "Jan"
         case 2
             AbbrMes = "Feb"
         case 3
             AbbrMes = "Mar"
         case 4
             AbbrMes = "Apr"
         case 5
             AbbrMes = "May"
         case 6
             AbbrMes = "Jun"
         case 7
             AbbrMes = "Jul"
         case 8
             AbbrMes = "Aug"
         case 9
             AbbrMes = "Sep"
         case 10
             AbbrMes = "Oct"
         case 11
             AbbrMes = "Nov"
         case 12
             AbbrMes = "Dec"
     end select 
end function
function CeroDelante(str)
     if len(str) = 1 then
         CeroDelante = "0" & str
     else
         CeroDelante = str
     end if
end function

function FormatoRFC822(fecha)
     dim fechaRFC
     fechaRFC = AbbrDia(DatePart("w", fecha)) & ", " _
         & CeroDelante(DatePart("d", fecha))
     fechaRFC = fechaRFC & _
         " " & AbbrMes(DatePart("m", fecha)) & " " & _
         DatePart("yyyy", fecha) & _
         " " & CeroDelante(DatePart("h", fecha))
     fechaRFC = fechaRFC & ":" & CeroDelante(DatePart("n", fecha)) & ":" & CeroDelante(DatePart("s", fecha)) 
     FormatoRFC822 = fechaRFC
end function
'================================================
sitio=("nombretusitio")
direccionweb=("ladireccionwebhttp")
direccionrss=("ladireccionwebrss")
%>
	<channel>
		<%response.write ("<title>")&sitio&("</title>")%>
		<description>Noticias.</description>
		<link>")&direccionweb&("</link>
		<atom:link href="http://www.tusitio.com/rss/rss.asp" rel="self" type="application/rss+xml"  />
		<generator>tusitio CMS </generator>
		<language>es</language>
<%
'**************************************************************************************
'Creamos la conexión con la Base de Datos
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../fpdb/noticias.mdb"))
SQL="SELECT TOP 5 id, fecha, hora, titulo, subtitulo, dato FROM noticias ORDER BY id DESC"
'Ejecutamos la consulta
set rs=oConn.Execute(SQL)
'Vamos al primer registro
rs.MoveFirst
'Montamos el bucle
do while not rs.eof
 subtitulo=rs("subtitulo")
 fechaMAL= CDate(rs("fecha"))
 fechaMal2=WeekDayName(WeekDay(fechaMAL))& ", " & Day(fechaMAL) & " " & MonthName(Month(fechaMAL))& ", " & Year(fechaMAL)
 fechaBIEN=FormatoRFC822(fechaMAL)
 hora=rs("hora")
 titulo=rs("titulo")
			neteja1=instr(titulo,">")
			titulo=mid(titulo,neteja1+1)
 id=rs("id")
 subtitulo=limpio(subtitulo)
 'Mostramos los primeros 200 caracteres de la noticia
 if len(rs("subtitulo"))>200 then
  noticia=replace(left(rs("subtitulo"),200) & "...",vbCrLf,"<br />")
 else
  noticia=replace(rs("subtitulo"),vbCrLf,"<br />")
 end if
 noticia=limpio(noticia)
 'escribimos el nodo XML
%>		
		
		<item>
			<title><%=titulo%></title>
			<link>http://www.tusitio.com/default_noticias.asp?opcion=not&amp;pg=1&amp;menu=menu1&amp;idN=<%=rs("id") %>&amp;idioma=1&amp;pagina=lanoticia&amp;AA=LEER</link>
			<guid>http://www.tusitio.com/default_noticias.asp?opcion=not&amp;pg=1&amp;menu=menu1&amp;idN=<%=rs("id") %>&amp;idioma=1&amp;pagina=lanoticia&amp;AA=LEER</guid>
			<description><![CDATA[<%=subtitulo%>]]></description>
			<category>Prensa Noticias</category>
			<pubDate><%=fechaBIEN%> +0000</pubDate>
		</item>
		
<%
'nos movemos al siguiente registro
rs.MoveNext
loop
'Cerramos y limpiamos los objetos
rs.Close
oConn.Close
set rs=nothing
set oConn=nothing
'*****************************************************
%>
</channel></rss>
no es muy depurado pero me funciona ...

Etiquetas: asp, partir, sql, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:32.