„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich einen XPath-Knoten mit SimpleXML und DOMDocument löschen?

Wie kann ich einen XPath-Knoten mit SimpleXML und DOMDocument löschen?

Veröffentlicht am 08.11.2024
Durchsuche:693

How Can I Delete an XPath Node Using SimpleXML and DOMDocument?

SimpleXML: Löschen eines XPath-Knotens

In diesem Artikel erfahren Sie, wie Sie einen übergeordneten Knoten effektiv aus einem XML-Dokument löschen können SimpleXML und XPath.

Die Einschränkungen von SimpleXML verstehen

Der bereitgestellte Code versucht, SimpleXML zu verwenden, um einen übergeordneten Knoten zu löschen, nachdem er über XPath gefunden wurde. Allerdings entfernt die unset()-Funktion von SimpleXML nur die in einer Variablen gespeicherte Objektreferenz, nicht den Knoten selbst.

DOMDocument to the Rescue

Bedenken Sie Folgendes, um die Einschränkungen von SimpleXML zu überwinden mit DOMDocument, das die Struktur von XML-Dokumenten direkter manipuliert.

Lösung mit DOMDocument

  1. Erstellen Sie ein DOMDocument-Objekt und laden Sie die XML-Datei hinein.
  2. Verwenden Sie XPath, um den Zielknoten abzufragen und auszuwählen.
  3. Entfernen Sie den übergeordneten Knoten mit $node->parentNode->removeChild($node).

Beispielcode und Ausgabe

$doc = new DOMDocument;
$doc->loadXML(...);
$item_id = 456;

$xpath = new DOMXpath($doc);
foreach($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) {
  $node->parentNode->removeChild($node);
}
echo $doc->saveXML();

Dieser Code entfernt den -Knoten für das Produkt mit der Artikel-ID 456, was zu einem geänderten XML-Dokument ohne diesen Knoten führt.

Fazit

DOMDocument ermöglicht eine robustere Bearbeitung von XML-Dokumenten, einschließlich der direkten Entfernung von Knoten. Während SimpleXML für einfache XPath-Abfragen praktisch sein kann, ist DOMDocument eine geeignetere Wahl für komplexere XML-Manipulationsaufgaben.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3