So entfernen Sie einen XPath-Knoten mit SimpleXML
Das Finden und Entfernen eines XML-Knotens mithilfe von XPath-Abfragen kann in SimpleXML eine Herausforderung sein. Dieser Artikel befasst sich mit dem Problem des Löschens eines übergeordneten Knotens, der durch eine XPath-Suche identifiziert wurde.
Betrachten Sie das folgende Beispiel:
<code class="php">$xml = simplexml_load_file($filename); $data = $xml->xpath('//items/info[item_id="' . $item_id . '"]'); $parent = $data[0]->xpath("parent::*"); unset($parent);</code>
In diesem Code besteht das Ziel darin, die übergeordneten
Eine Lösung besteht darin, für diese Aufgabe wieder DOMDocument zu verwenden:
<code class="php">$doc = new DOMDocument; $doc->loadxml('<foo> <items> <info> <item_id>123</item_id> </info> </items> <items> <info> <item_id>456</item_id> </info> </items> <items> <info> <item_id>789</item_id> </info> </items> </foo>'); $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>
Dieser Code entfernt die
Das obige ist der detaillierte Inhalt vonWie entferne ich einen XPath-Knoten in SimpleXML, ohne die gesamte Struktur zu verlieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!