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.
(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.
(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
Download RSS and use DOM methods for Information Retrieval
<%
set http=Server.CreateObject("msxml2.xmlhttp.4.0")
set xmlDoc=Server.CreateObject("msxml2.DOMDocument.4.0")
http.open "GET", "http://tradingsharesonline.com/rss/", false
http.send
set root=http.responseXML
Response.write ""
Response.write root.xml
Response.write ""
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=""
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