Das Einlesen von XML-Dokumenten ist mit PHP 5 eine wahre Freude und die Programmierung macht Spaß. Leider ist dieser Komfort unter PHP 4 nicht gegeben.
Sicher ist der Trend zu PHP 5, aber leider interessiert das nicht alle Hoster und Anwender und daher muss man doch des öfteren unter PHP 4 arbeiten.
Natürlich gibt es eine ganze Reihe von Tools, die einem die Arbeit erleichtern und die Verarbeitung von XML ermöglichen. Aber auch da gibt es große Unterschiede und nicht immer ist das Ergebnis befriedigend.
WordPress beispielsweise nutzt MagpieRSS und nicht immer ist die Ausgabe wie erwünscht. Alternative SimplePie ist da schon flexibler. Aber auch dann muss mehr programmiert werden. Mit SimpleXML unter PHP 5 ist es einfach und flexibel.
Die SimpleXML-Extension bietet ein besonders einfaches und leicht zu handhabendes Toolset, um XML in ein Objekt zu konvertieren, das mit normalen Eigenschafts-Selektoren und Array-Iteratoren bearbeitet werden kann.
php.net: SimpleXML
Nun gibt es die Klasse „SimpleXML for PHP 4“, die eingebunden, steht SimpleXML auch unter PHP 4 bereit und erleichtert die Arbeit. Schöne Umsetzung mit einer 2 kByte großen Klasse. Damit wird die Alternative, wenn kein PHP 5 vorliegt, angenehm.
Die Nutzung ist denkbar einfach.
<?php
require_once 'simplexml.class.php';
$file = 'https://bueltge.de/feed';
$sxml = new simplexml;
$data = $sxml->xml_load_file($file);
print_r($data);
?>
Wow, danke fuer den Tipp. Auf sowas hab‘ ich schon lange gewartet.
Thanks so much. I have updated the class file in phpclasses.org so users can now access the array elements like this:
$result->var1->child[3]->content;
but if the user wants to access the element like array style, a little setting must be applied now;
$sx = xml_load_file($url,"array");
this returns the result as an array.
And please, if someone finds an error in this class, don't hesitate to ask me or write it to the discussion forum in my class page.
Thank you.
@Taha Paksu: Welcome. I think, this is a very nice class.
Thank you.
Danke für den Tipp, ist sehr hilfreich.