"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je supprimer un nœud XPath à l’aide de SimpleXML et DOMDocument ?

Comment puis-je supprimer un nœud XPath à l’aide de SimpleXML et DOMDocument ?

Publié le 2024-11-08
Parcourir:307

How Can I Delete an XPath Node Using SimpleXML and DOMDocument?

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

  1. Créez un objet DOMDocument et chargez-y le fichier XML.
  2. Utilisez XPath pour interroger et sélectionner le nœud cible.
  3. Supprimer le parent nœud utilisant $node->parentNode->removeChild($node).

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 pour le produit avec item_id 456, ce qui entraîne un document XML modifié sans ce 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.

Dernier tutoriel Plus>

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