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

Patricia Arquette
Freigeben: 2024-10-26 21:25:29
Original
356 Leute haben es durchsucht

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. Die unset()-Funktion von SimpleXML entfernt jedoch nur die in einer Variablen gespeicherte Objektreferenz, nicht den Knoten selbst.

DOMDocument to the Rescue

Um die Einschränkungen von SimpleXML zu überwinden, sollten Sie Folgendes in Betracht ziehen 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

<code class="php">$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();</code>
Nach dem Login kopieren

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

Fazit

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

Das obige ist der detaillierte Inhalt vonWie kann ich einen XPath-Knoten mit SimpleXML und DOMDocument löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!