Justus Blümer

XML per PHP-Skript abfragen

XML ist ein wichtiges Handwerkszeug für Webentwickler und SEOs, denn bei der überwältigenden Mehrheit von APIs und Datenschnittstellen aller Art kommt XML zum Einsatz. Seien es nun Twitter-Nachrichten, Wetterdaten oder ein Produktfeed mit aufbereiteten Daten, die sich bequem automatisch verarbeiten lassen – dank XML. Die Verarbeitung von XML ist sehr einfach und kann auf nahezu jedem Webserver mit PHP durchgeführt werden.

Zunächst muss man an die eigentlichen XML-Daten kommen, sofern man sie nicht als Datei auf dem Server liegen hat. Da gibt es zwei Optionen. Wer einen Aufruf mit mehr Einstellmöglichkeiten erreichen will, kann die Daten zunächst mit cURL herunterladen.


$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'http://www.justusbluemer.de/blog/feed');
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$xml = curl_exec($curl) or die('Es ist ein Fehler aufgetreten.');

curl_close($curl);

echo $xml;

So kann man über curl_setopt() z.B. Referrer- oder Useragent-Daten selbst bestimmen. Bei php.net gibt es eine volle Liste mit cURL-Optionen.

Alternativ und für die meisten wohl die unkompliziertere Methode verbindet das Abrufen direkt mit dem Laden und so wird die XML-URL oder der Dateipfad, sofern es lokal vorliegt, direkt in den simplexml_load_file()-Aufruf gesteckt:


$xmlHandle = simplexml_load_file('http://www.justusbluemer.de/blog/feed');

print_r($xmlHandle);
} else {
exit('Konnte test.xml nicht öffnen.');
}

Wer das XML per cURL abgerufen hat, verwendet stattdessen simplexml_load_string:


$xml = // ... XML-String mit cURL laden laden (siehe Codebeispiel oben)

$xmlHandle = simplexml_load_string($string);

print_r($xmlHandle);

Das XML besteht nun als Array in $xmlHandle. Wie genau das Array aufgebaut ist, schaut man sich am besten selbst mit einem Aufruf von print_r($xmlHandle) selbst an.
Wichtiger Tip: Auf Attribute greift man mit der Methode ->attributes() zu.