Der eingebaute DOM-Parser ermöglicht die Verarbeitung von XML-Dokumenten in PHP.
W3C DOM bietet einen Standardsatz von Objekten für HTML- und XML-Dokumente sowie eine Standardschnittstelle für den Zugriff auf und die Bearbeitung dieser Dokumente. W3C DOM ist in verschiedene Teile (Core, XML und HTML) und verschiedene Ebenen (DOM Level 1/2/3) unterteilt: * Core DOM – definiert einen Standardsatz von Objekten für jedes strukturierte Dokument * XML DOM – für XML-Dokumente Definieren von a Standardsatz von Objekten* HTML DOM – Definieren eines Standardsatzes von Objekten für HTML-Dokumente. Um mehr über das XML DOM zu erfahren, besuchen Sie unser XML DOM-Tutorial.
Um ein XML-Dokument zu lesen und zu aktualisieren, also zu erstellen und zu verarbeiten, benötigen Sie einen XML-Parser.
Es gibt zwei grundlegende Arten von XML-Parsern:
Baumbasierter Parser: Dieser Parser wandelt XML-Dokumente in eine Baumstruktur um. Es analysiert das gesamte Dokument und bietet Zugriff auf Elemente in der Baumstruktur, beispielsweise das Document Object Model (DOM).
Ereignisbasierter Parser: Behandelt ein XML-Dokument als eine Reihe von Ereignissen. Wenn ein bestimmtes Ereignis auftritt, ruft der Parser eine Funktion auf, um es zu verarbeiten.
Der DOM-Parser ist ein baumbasierter Parser.
Bitte schauen Sie sich das folgende XML-Dokumentfragment an:
<?xml version="1.0"kodierung="ISO-8859-1"?><von>Jani</von>
XML DOM behandelt das obige XML als Baumstruktur:
Ebene 1: XML-Dokument
Ebene 2: Wurzelelement: <from>
Ebene 3: Textelement: „Jani“
Die DOM-XML-Parser-Funktion ist ein integraler Bestandteil des PHP-Kerns. Für die Nutzung dieser Funktionen ist keine Installation erforderlich.
In unserem Beispiel wird die folgende XML-Datei verwendet:
<?xml version="1.0" binding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don Vergiss mich dieses Wochenende nicht!</body></note>
Wir müssen den XML-Parser initialisieren, das XML laden und ausgeben:
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");print $xmlDoc->saveXML();?>
Der obige Code gibt Folgendes aus:
ToveJaniReminder Vergiss mich dieses Wochenende nicht!
Wenn Sie den Quellcode in einem Browserfenster anzeigen, sehen Sie den folgenden HTML-Code:
<?xml version="1.0" binding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don Vergiss mich dieses Wochenende nicht!</body></note>
Das obige Beispiel erstellt ein DOMDocument-Objekt und lädt das XML in „note.xml“ in dieses Dokumentobjekt.
Die Funktion saveXML() fügt das interne XML-Dokument in einen String ein, damit wir es ausgeben können.
Wir möchten den XML-Parser initialisieren, das XML laden und alle Elemente des <note>-Elements durchlaufen:
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { print $item-> nodeName . " = " . $item->nodeValue
Der obige Code gibt Folgendes aus:
#text = an = Tove#text = von = Jani#text = Überschrift = Erinnerung#text = Körper = Vergiss mich dieses Wochenende nicht!#text =
Im obigen Beispiel sehen Sie, dass zwischen jedem Element leere Textknoten vorhanden sind.
Wenn XML generiert wird, enthält es normalerweise Leerzeichen zwischen Knoten. Der XML-DOM-Parser behandelt sie als normale Elemente, was manchmal zu Problemen führen kann, wenn man ihnen keine Beachtung schenkt.
Um mehr über XML DOM zu erfahren, besuchen Sie unser XML DOM-Tutorial.