SimpleXML : Supprimer un nœud XPath
Dans cet article, nous explorerons comment supprimer efficacement un nœud parent d'un document XML à l'aide SimpleXML et XPath.
Comprendre les limitations de SimpleXML
Le code fourni tente d'utiliser SimpleXML pour supprimer un nœud parent après l'avoir trouvé via XPath. Cependant, la fonction unset() de SimpleXML supprime uniquement la référence d'objet stockée dans une variable, pas le nœud lui-même.
DOMDocument to the Rescue
Pour surmonter les limitations de SimpleXML, considérez en utilisant DOMDocument, qui manipule plus directement la structure des documents XML.
Solution utilisant DOMDocument
Exemple de code et de sortie
<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>
Ce code supprime l'attribut
Conclusion
DOMDocument permet une manipulation plus robuste des documents XML, y compris la suppression directe de nœuds. Alors que SimpleXML peut être pratique pour les requêtes XPath de base, DOMDocument est un choix plus approprié pour les tâches de manipulation XML plus complexes.
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!