SimpleXML

SimpleXML ist eine Vereinfachung des Zugriffes auf den DOM-Baum, der aus XML-Dateien entsteht. Hierbei wird die XML-Datei wieder zunächst komplett in den Speicher gelesen, bevor diese traversiert werden kann. Dann jedoch ist es möglich, direkt über Variablen, die den Namen der genutzten Tags tragen, auf die Inhalte zuzugreifen.

Für die vorgestellte Beispieldatei funktioniert dies wie folgt:

In Zeile 2 des Skriptes ist zu sehen, wie die Datei geladen wird. Nach dem Laden kann direkt über die Attribute des $xml-Objektes auf die einzelnen Tags zugegriffen werden. In der darauf folgenden Zeile geschieht dies auf das text-Tag. Die nächste Zeile ruft das Attribut cy des circle-Tags auf. Auch Traversierungen sind möglich, wie die nächste Zeile zeigt. In Zeile 6 wird ein neuen Knoten mit Hilfe von addChild() hinzugefügt. Dieser wird gleichzeitig zurückgegeben und in der Variable $neuerText hinterlegt. So ist es uns nun auch möglich, XML-Attribute mit addAttribute() hinzuzufügen. Das XML-Dokument enthält nun zwei text-Knoten. Es ist möglich mit der nun folgenden foreach-Schleife über diese zu iterieren oder aber es ist möglich, wie in Zeile 13 gezeigt, die Knoten auch direkt anzuspringen. Die letzte Zeile gibt das komplette sich nun im Speicher befindliche XML-Dokument aus.

Manchmal ist es so, dass man die Namen der Tags, die ein Knoten beinhaltet, nicht kennt. Hier ist es möglich mit children() auf die Kinder zuzugreifen. Die Anzahl der Kindknoten sind mit count() erfragbar. Ebenfalls sind unter attributes() die Attribute verfügbar. Falls der eigene Name des aktuellen Elementes unklar ist, so kann dieser mit getName() abgefragt werden.

Mit der Funktion simplexml_import_dom() ist es möglich, eine DOM-Struktur in eine SimpleXML-Struktur zu konvertieren. Mittels dom_import_simplexml() wird ein SimpleXML-Objekt in eine DOM-Struktur konvertiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert