Comment supprimer un nœud XPath avec SimpleXML
Trouver et supprimer un nœud XML à l'aide de requêtes XPath peut être un défi dans SimpleXML. Cet article aborde le problème de la suppression d'un nœud parent identifié via une recherche XPath.
Considérons l'exemple suivant :
<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>
Dans ce code, le but est de supprimer le parent
Une solution consiste à revenir à l'utilisation de DOMDocument pour cette tâche :
<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>
Ce code supprimera le
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!