Atom til RSS med ASP

Det er nu lykkedes mig at få transformeret Atom feed’et fra Blogger om til RSS 2.0 med ASP.

Resultatet er dog ikke optimalt, da jeg har været nødt til at indsætte en CDATA sektion i <description> tagget i XML’en. Denne CDATA sektion gør, at indholdet i tagget ikke læses af browseren som XML. Dvs. at al HTML formattering desværre går tabt. Det kunne nok laves bedre ved at kombinere med XSLT, men så langt er jeg ikke lige nået endnu. Indtil videre fungerer skidtet i hvert fald i Mozilla Thunderbird.

Resultatet kommer herunder. Jeg er ikke nogen kodehaj, så det er sikkert et grimt stykke kode. Men hvis du har forslag til forbedringer, hører jeg meget gerne fra dig.

Du er velkommen til at copy/paste koden til din egen ASP fil, hvis du synes, du kan bruge det. (Til andre nybegyndere: Husk lige at fjerne tallene i starten af hver linie. De er der bare for at nummerere linierne…)

Andre muligheder for transformering til RSS
Har du ikke mod på at gå i gang med sådan en ASP fil, kan du nemt få transformeret dit Atom feed til RSS med Feedburner.com.


01. <% @Language="VBScript" %>
02. <% Response.ContentType = "text/xml" %><?xml version="1.0" encoding="ISO-8859-1"?>
03. <%
04. Dim xml
05. Set xml = Server.CreateObject("Microsoft.XMLDOM")
06. xml.async = False
07. xml.load (Server.MapPath("atom.xml"))
08.
09. Dim attrFeedLanguage, nodFeedTitle, nodTagline, attrLinkAlt, nodGenerator
10. Dim nodEntries, tmpEntry
11.
12. attrFeedLanguage = xml.documentElement.getAttribute("xml:lang")
13. nodFeedTitle = xml.documentElement.childNodes(2).text
14. nodTagline = xml.documentElement.childNodes(3).text
15. attrLinkAlt = xml.documentElement.childNodes(4).getAttribute("href")
16. nodGenerator = xml.documentElement.childNodes(7).text
17. %>
18.
19. <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
20. <channel>
21. <title><% = nodFeedTitle %></title>
22. <link><% = attrLinkAlt %></link>
23. <description><% = nodTagline %></description>
24. <language><% = attrFeedLanguage %></language>
25. <generator><% = nodGenerator %></generator>
26. <%
27.
28. Set nodEntries = xml.getElementsByTagName("entry")
29. For Each tmpEntry in nodEntries
30. %>
31.
32. <item>
33. <title><%
34. Response.Write(tmpEntry.childnodes(7).text)
35. %></title>
36. <link><%
37. Response.Write(tmpEntry.childnodes(5).getAttribute("href"))
38. %></link>
39. <description><![CDATA[<%
40. Response.Write(tmpEntry.childnodes(8).text)
41. %>]]></description>
42. <author><%
43. Response.Write(tmpEntry.childnodes(1).text)
44. %></author>
45. </item>
46.
47. <%
48. Next
49. Set xml = Nothing
50. %>
51.
52. </channel>
53. </rss>

Skriv en kommentar