So entfernen Sie einen XPath-Knoten mit SimpleXML
SimpleXML ist eine PHP-Erweiterung, die die Arbeit mit XML vereinfacht. Es kann jedoch verwirrend sein, einen übergeordneten Knoten mithilfe von XPath-Abfragen zu entfernen.
Im angegebenen Beispiel verwendet der Code XPath, um ein bestimmtes Element anhand seiner ID zu finden, und versucht, seinen übergeordneten Knoten zu deaktivieren. Dieser Ansatz entfernt jedoch nicht wirklich den übergeordneten Knoten.
Um einen Knoten effektiv zu entfernen, können Sie die folgenden Schritte ausführen:
Die geänderte Der Code würde so aussehen:
<code class="php">$xml = new SimpleXMLElement($xmlString); $data = $xml->xpath('//items/info[item_id="' . $item_id . '"]'); unset($data[0]);</code>
Alternativer Ansatz mit DOMDocument
Alternativ können Sie die DOMDocument-Klasse zur weiteren Kontrolle der XML-Manipulation verwenden. Hier ist ein Beispiel:
<code class="php">$doc = new DOMDocument(); $doc->loadXML($xmlString); $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>
Diese Methode entfernt den gesamten Artikelknoten für die angegebene Artikel-ID.
Das obige ist der detaillierte Inhalt vonWie entferne ich effektiv einen übergeordneten Knoten mithilfe von XPath und SimpleXML in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!