Pues yo lo haria mas o menos asi:
-La llamada desde el cliente lo haría a traves del objeto
XMLHTTP que llamaría a una página .asp en el servidor. Dicho objeto puede devolver tanto texto plano como XML.
- En el servidor, dicha página .asp contendría un objeto
MSXML.DOMDocument que se encargaría de comprobar si existe dicho archivo usando su método LoadXML y una gestion de error:
Código:
objDoc.loadXML(strFile)
if objDoc.parseError.errorCode <> 0 Then
response.Write("Error de Lectura (Por favor, ponerse en contacto con el webmaster).<br />FilePos: " & objDoc.parseError.filepos & "<br /> Línea: " & objDoc.parseError.Line & "<br /> Causa: " & objDoc.parseError.reason & "<br /> Ocurrió en: " & objDoc.parseError.srcText & "<br /> Archivo: " & objDoc.parseError.URL)
end if
Te pongo toda la gestion de error por si te sirve de algo pero el método devuelve true si todo ha ido bien o false si no.
En caso de que todo haya ido bien, es tan facil como:
if objXML.loadXML(talarchivo.xml) then response.write objXML.xml
Y la página que devolvería sería el XML guardado.
En caso de que no exista, puedes crearlo con dicho objeto y finalmente guardarlo con el método
save. Por ejemplo
objXML.save c:\inetpub\wwwroot\xml\xml_10_04_2007.xml
Si te fijas, realmente no necesitas guardar el RSS en ningun archivo físico ya que puedes generarlo cada vez que es solicitado. La única ventaja que tiene guardarlo en un archivo es la rapidez (con una sola linea de código se devuelve). Sus desventajas son principalmente que cuando lleves 6 o 7 meses, habrá una cantidad considerable de archivos RSS y serán asequibles para cualquiera que sepa lo que tiene que buscar.
De la otra forma, simplemente generas el RSS de forma dinámica dejando el disco duro del servidor mas o menos impoluto
NOTA: XMLHTTP tambien dispone de la propiedad
status:
if objXMLHTTP.status = 200 then ' Todo ha ido bien
else ' Nada, no funca
end if
Espero haberte ayudado
Un saludo