Für Menschen · Seien Sie begeistert und Sie werden begeistern !
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 = 'http://bueltge.de/feed';
$sxml = new simplexml;
$data = $sxml->xml_load_file($file);
print_r($data);
?>
Ich bin urlaubsreif, ersticke in Arbeit und damit auch für die Leser des Weblogs nicht zu erreichen. Bitte geduldet euch ein wenig mit Supportanfragen.
Leider muss ich die Kommentarfunktion deaktivieren, ansonsten würde ich weiter in Arbeit ersticken oder die Anfragen nicht nach bestem Gewissen beantworten.
Vielen Dank für das Verständnis!
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 854 Beiträge, 15036 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
10. April 2008 um 12:04
Wow, danke fuer den Tipp. Auf sowas hab' ich schon lange gewartet.
10. April 2008 um 17:30
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.
10. April 2008 um 22:11
@Taha Paksu: Welcome. I think, this is a very nice class.
11. April 2008 um 09:15
Thank you.
11. April 2008 um 10:06
Danke für den Tipp, ist sehr hilfreich.
26. September 2008 um 16:25
hi!
I see that you have made a good job!
but there is some problem when i have a doc.xml in this form:
when i try to pars doc.xml --> ko
when i try to pars doc2.xml --> ko
in fact in the while() when the size of is 1 it make a problem and can't see the first item and when i add a secon item to the the size will be> 1 --> it show me the first and the second!!!
Can u help me?
thank you in advance
Best regards
Ali DHIBI
26. September 2008 um 19:21
@ALi: please send me your code via mail, the comment has delete a little bid of your code.
29. September 2008 um 13:17
Hi!
finally i found the solution!
in fact i have to make a test with the size of the returned object
sizeof($data);
if $data==1 i dont use a while
else i use a while.
thank u very much for your help
best regards
18. November 2008 um 17:57
Dank deines Hinweises konnte ich simplexml jetzt auch unter php4 zum laufen bringen. Allerdings hab ich das Problem das der Feed mit umlauten wie ä ö etc reinkommt. Und simplexml meldet mir deshalb einen Fehler
Nehme ich mir den Feed und entferne aus dem Quelltext alle Umlaute, speichere den Quelltext lokal als Datei ab und lasse diesen dann von simplexml einlesen - alles wunderbar. Vielleicht jemand einen Tip was ich wo einstellen müsste damit diese Umlaute automatisch umgewandelt werden bevor der Feed eingelesen wird ?
18. November 2008 um 19:36
@Jan: du musst eine Funktion integrieren, die dir die Zeichen ersetzt. Alternativ kann man versuchen, den Feed umzuleiten, z.B. Yahoo Pipes, und diesen "neuen" Feed zu laden.
26. November 2008 um 17:10
danke schön
7. Dezember 2008 um 01:54
Hey,
I needed to say something about the charset problem. The function
xml_load_filehas an argument to specify the charset the xml system should read from the source xml. you can parse the xml in any charset if you set this option. And the other problems are related to the php code you wrote outside the script. and maybe the file type "unicode" or "utf8"Thank you all for using my script. See you.
25. April 2009 um 03:50
Kann mir einer den Code schicken, leider sind nur Teile hier verfügbar. Oder noch besser wo kann ich den Code herunterladen, leider bis jetzt nichts gefunden. Danke im Voraus.
16. Januar 2010 um 15:31
Hallo, das ist genau das was ich suche. Leider konnte ich die Klasse bisher nicht runterladen. Die Registrierung scheint nicht zu funktionieren.
Gibt es Alternativen zum Download?
18. Januar 2010 um 08:48
@Tim: habe sie dir via Mail gesandt.