SimpleXML : Suppression d'un nœud XPath
Dans cet article, nous allons explorer 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 Sortie
$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();
Ce code supprime le nœud
Conclusion
DOMDocument permet une manipulation plus robuste des documents XML, y compris la suppression directe des 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3