XML RSS Feed mit PHP und DOM einlesen

» Mit den DOM Befehlen der Programmiersprache PHP ist es nicht nur einfach valide RSS Feeds zu erstellen, sondern diese auch zur weiteren Verarbeitung einzulesen. «

Wir haben einen validen XML RSS Feed und möchten diesen zur Bearbeitung einlesen. Dabei nutzen wir die DOM-Funktionen, die uns PHP zur Verfügung stellt.

Zu Anfang definieren wir den RSS-Feed, den wir einlesen wollen:
      $file = 'Pfad zu der RSS-Datei/dateiname.xml';
­
$file ist ein freiwählbarer Variablenname, die Angaben: 'Pfad zu der RSS-Datei/dateiname.xml' müssen natürlich durch die entsprechenden Daten ersetzt werden.

Als nächstes erstellen wir ein neues DOM-Dokument, was letztendlich die Daten des einzulesenden RSS-Feeds aufnehmen wird...
      $xml = new DOMDocument('1.0', 'UTF-8');


$xml ist ebenfalls wieder ein freiwählbarer Variablenname, man könnte also auch ebenso gut $dom, $doc oder was auch immer verwenden.

Nun geben wir unserem neuen DOM-Dokument noch eine Anweisung mit auf den Weg:
      $xml->preserveWhiteSpace = FALSE;

Diese besagt, das der "WhiteSpace" (Absätze, Leerzeichen, etc...) des einzulesenden Feeds NICHT erhalten bleiben sollen. Dieser Punkt ist wichtig, da sonst die neue DOM Struktur teilweise unbrauchbar werden könnte und zu merkwürdigen Ergebnissen führen kann.

Jetzt kommen wir auch schon zum eigentlichen Einlesen des RSS-Feeds:

    $xml->load($file);

Im Endeffekt war es das schon. Wir haben nun ein neues DOM Dokument erstellt und einen beliebigen RSS-Feed eingelesen, der nun in unserem Dokument zur weiteren Verarbeitung bereit steht.
Wer jetzt z.B. das Veröffentlichungsdatum des Feeds ansprechen möchte, kann dies erreichen mit:
      $date = $xml->getElementsByTagName('lastBuildDate')
        ->item(0)->nodeValue;

Die freiwählbare Variable $date hat nun den "Wert" (Inhalt) des <lastBuildDate>-tags.
Diese Codezeile könnte man wie eine Kombination mehreren Einzelbefehle ansehe:

Zuerst beziehen wir uns auf das neue DOM-Dokument (dass ja bekanntlich den eingelesenen RSS Feed beinhaltet): $xml.

Jetzt wollen wir aus unserem Dokument alle tags haben, die die Bezeichnung 'lastBuildDate' besitzen, dieses erlaubt der Befehl: getElementsByTagName(). Um es nicht zu kompliziert zu machen, wurde an dieser Stelle bewusst ein tag ausgewählt, der in einem normalen RSS-Feed nur einmal vorkommt.

item(0) ist praktisch der Befehl 'den allerersten tag auszuwählen' (Die Zählung beginnt immer bei '0').

Abschliessend wollen wir den 'Wert' (value) des herausgesuchten tags (auch als 'Knoten' (=node) bezeichnet), dass Ganze soll dann unserer Variablen $date zu gewiesen werden.

Mit dieser Form kann man auch gezielt die Inhalte einzelner tags verändern, wenn wir die vorherige Codezeile einfach umdrehen...

 
      $xml->getElementsByTagName('lastBuildDate')
        ->item(0)->nodeValue = $date;

... würde nun der Inhalt unserer Variablen $date den 'Wert' des 'lastBuildDate' überschreiben.
Da wir jedoch in diesem Beispiel unserer Variablen $date keinen Inhalt/Wert zugewiesen haben, würde der tag 'lastBuildDate' leer bleiben, da wir den vorherigen Inhalt mit 'Nichts' überschrieben haben.
 
Bild einer Zeitung, Zeitschrift als Symbol für Newsletter

Newsletter

Jetzt unseren kostenlosen Newsletter abonnieren und immer aktuell informiert sein.


Ein Bookmark Buch

Bookmark

Diese Seite als Lesezeichen (Bookmark) hinzufügen, bei...

Furl YahooMyWeb Google Bookmark del.icio.us Tausendreporter Webnews yigg it Mister Wong co.mments TailRank Spurl Digg blinkbits BlinkList Reddit connotea
Symbol der RSS Feeds

RSS Feeds

Bleiben Sie auf dem Laufendem mit unseren Informationsfeeds:

[Website-Feeds]: Logo RSS-Feed Version 1.0 Logo RSS-Feed Version 2.0 Logo RSS-Feed Version ATOM


©copyright 2008 by xml-rss.de - all rights reserved
Websolution & Development powered by dmp|cda

    H   A   U   P   T   M   E   N   Ü

KW 12 - Samstag, 25. März 2017