RSS+DOM

Gegeben die Annahme, dass get_remote_dom.asp (5.4) erfolgreich war, dann befindet sich in der Variablen root.xml der RSS Text.

Mittels den DOM Funktionen werden wir nun die uns interessierenden Bereiche herausfiltern und anzeigen.

Downloaded from Trading Shares Online mit get_remote_dom am 13.Nov.05 um 11:10 Uhr

Wir interessieren uns zunächst für statische Informationen aus dem "RSS-Header" wie Name des Anbieters, Link zur Anbieter Homepage, Kurze Beschreibung, Sprache.

Hierzu selektieren wir die Informationen mit der "selectSingleNode" Funktion (MSXML 4.0).

Mal sehen ob es klappt.

get_remote_dom_dom.asp   (Es kann ein bisschen dauern bis die Seite dargestellt wird)

Nach ein paar Versuchen hat es geklappt. Zumindest hat es bei mir geklappt.

" xmlDoc.async = False xmlDoc.resolveExternals = False xmlDoc.validateOnParse = False xmlDoc.loadXML(root.xml) dim oTitle,oLink,oDesc,oCopy,oLang set oTitle=xmlDoc.selectSingleNode("*/channel/title") set oLink=xmlDoc.selectSingleNode("*/channel/link") set oDesc=xmlDoc.selectSingleNode("*/channel/description") set oCopy=xmlDoc.selectSingleNode("*/channel/copyright") set oLang=xmlDoc.selectSingleNode("*/channel/language") %>

Anbieter: <%=oTitle.text%>
Copyright: <%=oCopy.text%>
Sprache: <%=oLang.text%>

(get_remote_dom_dom.asp)

Okay, dieses Beispiel zeigt zunächst nur den Anbieter an, die eigentlichen Artikelzusammenfassungen aber noch nicht.
Dann gehen wir gleich einen Schritt weiter und bauen auch die Artikel in unsere Homepage ein.

get_remote_dom_art.asp (Auch hier kann es ein Weilchen dauern)

Die Artikelliste wird mit "SelectNodes" angesprochen. Das sieht dann zunächst so aus.

" xmlDoc.async = False xmlDoc.resolveExternals = False xmlDoc.validateOnParse = False xmlDoc.loadXML(root.xml) rem kopiere den XML Text ins XML Document dim oTitle,oLink,oDesc,oCopy,oLang set oTitle=xmlDoc.selectSingleNode("*/channel/title") set oLink=xmlDoc.selectSingleNode("*/channel/link") set oDesc=xmlDoc.selectSingleNode("*/channel/description") set oCopy=xmlDoc.selectSingleNode("*/channel/copyright") set oLang=xmlDoc.selectSingleNode("*/channel/language") %>

Anbieter (Quelle): <%=oTitle.text%>
Copyright: <%=oCopy.text%>
Sprache: <%=oLang.text%>

<% dim oArtikel,oItem set oArtikel=xmlDoc.selectNodes("*/channel/item") Response.write "

" & oArtikel.length & " Artikel in dem RSS Dokument

" for item=0 to oArtikel.length-1 set oItem=oArtikel.nextNode strArtikel="" if not (oItem is nothing) then sName=oItem.nodeName sData=oItem.xml strArtikel=strArtikel & "

Artikel " & cstr(item+1) & " " & sName & "

" end if Response.write strArtikel next %>

(get_remote_dom_art.asp)

Jetzt müssen wir noch einen eleganten Weg finden um die Elemente (title, link, description und pubDate) zu extrahieren und darzustellen.

Ich bin den hier gegangen: get_remote_dom_liste.asp

" xmlDoc.async = False xmlDoc.resolveExternals = False xmlDoc.validateOnParse = False xmlDoc.loadXML(root.xml) rem kopiere den XML Text ins XML Document dim oTitle,oLink,oDesc,oCopy,oLang set oTitle=xmlDoc.selectSingleNode("*/channel/title") set oLink=xmlDoc.selectSingleNode("*/channel/link") set oDesc=xmlDoc.selectSingleNode("*/channel/description") set oCopy=xmlDoc.selectSingleNode("*/channel/copyright") set oLang=xmlDoc.selectSingleNode("*/channel/language") %>

Anbieter (Quelle): <%=oTitle.text%>
Copyright: <%=oCopy.text%>
Sprache: <%=oLang.text%>

<% dim oArtikel,oItem set oArtikel=xmlDoc.selectNodes("*/channel/item") Response.write "

" & oArtikel.length & " Artikel in dem RSS Dokument

" for item=0 to oArtikel.length-1 set oItem=oArtikel.nextNode strArtikel="" if not (oItem is nothing) then strTitle=oItem.selectSingleNode("title").text strLink=oItem.selectSingleNode("link").text strDesc=oItem.selectSingleNode("description").text strArtikel=strArtikel & "

Artikel " & cstr(item+1) & " " & strTitle & "

" & strDesc & "

" strHyper="

Artikel Lesen

" strArtikel=strArtikel & strHyper end if Response.write strArtikel next %>
That's it. Our first working sample. Our server downloads an RSS file from another server and delivers HTML code to the browser.
Geschrieben von Matthias Jungbauer am 13. November 2005.

(get_remote_dom_liste.asp)

Bevor man den Quelltext einfach so kopiert und in seine eigenen Arbeiten übernimmt, sollte man wissen, dass auf jegliche Fehlerprüfung verzichtet wurde. Es kann zu sehr empfindlichen Störungen deiner Webseite kommen, falls du auf ausführliches testen verzichten solltest.

Geschrieben von Matthias Jungbauer am 13. November 2005