# Código ASP para lectura RSS feeds... con XSLT asociado...

<datetime class="hidden">2004-05-11T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, ASP.NET, XML -->
Aunque publicaría esto...básicamente tomará un RSS (o cualquier otro XML) de una fuente externa y lo transformaría usando un script XSLT especificado (pruebe éste para un transformador RSS básico... [rssTransform.xslt](/uploads/rssTransform.xslt))
El uso es bastante simple... por ejemplo:

Respuesta.Write(getXML("http://weblogs.asp.net/mainfeed.aspx","./xslt/rssTransform.xslt",120))

analizará la fuente principal de weblogs de ASP.NET... con un tiempo de caché de 120 segundos

```

Function getXML(sourceFile,xsltFile,cacheTime) 
'On Error Resume Next
if((DateDiff("s",Application.Value(sourceFile + "_Expr"),Now())>cacheTime) Or len(Application.Value(sourceFile))=0) then
dim styleFile 
dim source, style 
styleFile = Server.MapPath(xsltFile)

Dim xmlhttp
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.4.0")
xmlhttp.Open "GET", sourceFile, false
xmlhttp.Send

set source = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
source.async = false 
source.loadxml(xmlhttp.ResponseText) 
set style = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
style.async = false 
style.load(styleFile) 
outputHtml = source.transformNode(style) 
if(err.number = 0) then
Application.Lock
Application(sourceFile) = outputHtml
Application.Value(sourceFile + "_Expr") = now()
Application.UnLock
getXML = outputHtml
else
getXML = Application.Value(sourceFile)
end if

set source = nothing 
set style = nothing 
else
getXML = Application.Value(sourceFile)
end if
On Error Goto 0
End Function 
```