Heim  >  Artikel  >  Backend-Entwicklung  >  DOMDokument in PHP8.0

DOMDokument in PHP8.0

PHPz
PHPzOriginal
2023-05-14 08:18:052948Durchsuche

Mit der Veröffentlichung von PHP8.0 hat auch DOMDocument, die in PHP integrierte XML-Parsing-Bibliothek, neue Änderungen und Verbesserungen erfahren. Die Bedeutung von DOMDocument in PHP liegt auf der Hand, insbesondere bei der Verarbeitung von XML-Dokumenten. Es ist sehr leistungsstark und sehr einfach zu verwenden. In diesem Artikel werden die neuen Funktionen und Anwendungen von DOMDocument in PHP8.0 vorgestellt.

1. Überblick über DOMDocument

DOM (Document Object Model) ist eine allgemeine Programmierschnittstelle, die zur Verarbeitung des Speichers von XML- und HTML-Dokumenten verwendet wird . Datenmodell. In PHP wird DOM von der DOMDocument-Klasse unterstützt, die zum Erstellen, Ändern, Durchlaufen und Betreiben von XML-Dokumenten verwendet werden kann, einschließlich Hinzufügen, Löschen, Ändern von Knoten, Attributerfassung, Namespace-Verarbeitung usw. DOMDocument bietet eine große Anzahl von Methoden und Attributen, um die XML-Betriebsanforderungen in verschiedenen Szenarien zu erfüllen.

Die grundlegende Verwendung von DOMDocument ist wie folgt:

1. Erstellen Sie eine DOMDocument-Instanz

$dom = new DOMDocument();#🎜🎜 ##🎜🎜 #2. XML-Dokument importieren oder XML-Dokument erstellen

$dom->load('example.xml');

$dom->createElement('root' );#🎜 🎜#

3. Knoten erstellen (Elemente, Attribute, Text, Kommentare usw.)

$element = $dom->createElement('name');# 🎜🎜#$attribute = $dom->createAttribute('type');

$text = $dom->createTextNode('DOMDocument');

$comment = $dom->createComment ('Dies ist ein Kommentar.');


4. Knoten zum Dokument hinzufügen

$dom->appendChild($element); ->setAttributeNode($ attribute);

$element->appendChild($text);

$dom->insertBefore($comment, $element);

5. XML-Dokument ausgeben# 🎜🎜#
echo $dom->saveXML();

Das Obige ist die grundlegende Verwendung von DOMDocument und Anwendungen von DOMDocument in PHP8.0.

2. Neue Funktionen

1. Implizite Namespace-Unterstützung

In früheren Versionen erforderte die Verarbeitung von Namespaces eine explizite Angabe, wie zum Beispiel:

$dom = new DOMDocument('1.0', 'UTF-8');

$root = $dom->createElementNS('http://www.example.com /ns', ' ns:root');

$dom->appendChild($root);

Im obigen Code werden der Namespace-URI und der Knoten über den zu erstellenden Methodennamen createElementNS() angegeben ein Elementknoten mit einem Namespace-Präfix. Aber in PHP8.0 können Sie das Namespace-Präfix direkt im Knotennamen verwenden, und DOMDocument analysiert es automatisch in den entsprechenden URI. Zum Beispiel:

$dom = new DOMDocument('1.0', 'UTF-8');
$root = $dom->createElement('ns:root');# 🎜 🎜#$dom->appendChild($root);

Im obigen Code wird das Namespace-Präfix direkt im Namen des erstellten Knotens verwendet und das DOMDokument wird automatisch aufgelöst zu http://www.example.

2. Optimierung der Knoteneinfügungsreihenfolge


In der vorherigen Version verschob DOMDocument jedes Mal, wenn ein neuer Knoten eingefügt wurde, alle Geschwisterknoten nach dem aktuellen Knoten um eine Position nach hinten Einfügen des neuen Knotens, was weniger effizient ist. In PHP8.0 optimiert DOMDocument die Einfügereihenfolge der Knoten und führt eine neue Methode insertIndex() ein, die den Index der Einfügeposition basierend auf der Knotenposition und der Einfügereihenfolge berechnet und so unnötige Knotenbewegungsvorgänge vermeidet. Zum Beispiel:

$dom = new DOMDocument('1.0', 'UTF-8');

$root = $dom->createElement('root');#🎜🎜 # $child1 = $dom->createElement('child1');

$child2 = $dom->createElement('child2');

$dom->appendChild($root); # 🎜🎜#$root->appendChild($child1);

$root->appendChild($child2);

Erstellen Sie im obigen Code zuerst den Wurzelknoten und zwei Untergeordnete KnotenFügen Sie sie dann jeweils in den Wurzelknoten ein. In PHP8.0 kann diese Situation vermieden werden, indem die Methode insertIndex() verwendet wird, um die Einfügereihenfolge zu bestimmen. Zum Beispiel:


$dom = new DOMDocument('1.0', 'UTF-8');
$root = $dom->createElement('root');#🎜🎜 # $child1 = $dom->createElement('child1');
$child2 = $dom->createElement('child2');
$root->appendChild($child2); # 🎜🎜#$root->insertBefore($child1, $root->childNodes[$root->insertionIndex($child2, $child1)]);
$dom->appendChild($root ) ;

Im obigen Code werden zuerst drei Knoten erstellt, dann wird der zweite Knoten in den Wurzelknoten eingefügt, dann wird die Methode insertIndex() verwendet, um den Index der Einfügeposition zu erhalten, und Schließlich wird die Methode insertBefore() aufgerufen. Fügen Sie den ersten Knoten an der angegebenen Position ein und vermeiden Sie so unnötige Knotenbewegungsvorgänge.

3. Anwendung


1. Vergleich von DOMDocument und SimpleXML

DOMDocument und SimpleXML sind beide in PHP zum Parsen und Bearbeiten von XML-Dokumentkomponenten beliebt. Jedes davon hat seine eigenen Eigenschaften, Vor- und Nachteile. DOMDocument bietet flexiblere und leistungsfähigere Funktionen und unterstützt verschiedene XML-Operationen, ist jedoch komplexer und verbraucht Speicher. SimpleXML ist einfacher und benutzerfreundlicher, unterstützt XPath-Abfragen und bietet eine bessere Leistung und Speicherkontrolle. Entwickler können je nach Szenenanforderungen die für sie geeigneten Komponenten auswählen.

2. Verwenden Sie DOMDocument zum Betreiben von XML-Elementen.

DOMDocument bietet eine Fülle von Methoden und Attributen zum Erstellen, Ändern, Durchlaufen und Bearbeiten von XML-Elementen. Im Folgenden sind einige häufige Anwendungsbeispiele aufgeführt:

(1) Elementknoten erstellen

$dom = new DOMDocument('1.0', 'UTF-8');
$root = $dom->createElement('root');
$element = $dom- >createElement('name');
$element->setAttribute('type', 'string');
$root->appendChild($element);
$dom ->appendChild($root);

Erstellen Sie im obigen Code zunächst eine DOMDocument-Instanz und ein Stammelement, erstellen Sie dann einen Elementknoten und einen Attributknoten. Fügen Sie nach dem Festlegen des Attributwerts das Element hinzu Knoten zum Stammelement und geben Sie schließlich das XML-Dokument aus.

(2) Elementknoten durchqueren

$dom = new DOMDocument('1.0', 'UTF-8');
$dom->load( 'example.xml');
$elements = $dom->getElementsByTagName('name');
foreach ($elements as $element) {

echo $element->nodeValue;

}# 🎜🎜#

Im obigen Code wird das XML-Dokument über die Methode „load()“ importiert, dann werden alle passenden Knoten basierend auf dem Elementnamen abgerufen, eine foreach-Schleife wird zum Durchlaufen der Knoten und der Knotenwerte verwendet ausgegeben werden.

(3) Elementknoten ändern

$dom = new DOMDocument('1.0', 'UTF-8');

$dom->load( 'example.xml');
$elements = $dom->getElementsByTagName('name');
foreach ($elements as $element) {

$element->nodeValue = 'new value';

}# 🎜🎜#echo $dom->saveXML();


Im obigen Code wird auch zuerst das XML-Dokument importiert und dann werden alle passenden Knoten basierend auf dem Elementnamen und einem foreach abgerufen Die Schleife wird verwendet, um die Knoten zu durchlaufen, den Knotenwert zu ändern und schließlich ein XML-Dokument auszugeben. 4. Zusammenfassung Effizienz und Benutzerfreundlichkeit von DOMDocument. Bei der Verwendung von DOMDocument sollten wir seine flexiblen und leistungsstarken Funktionen in Kombination mit den tatsächlichen Anforderungen voll ausnutzen und geeignete Methoden und Attribute auswählen, um verschiedene XML-Operationen zu implementieren.

Das obige ist der detaillierte Inhalt vonDOMDokument in PHP8.0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn