Maison > développement back-end > tutoriel php > Comment supprimer des nœuds d'un document XML à l'aide de SimpleXML et DOMDocument en PHP ?

Comment supprimer des nœuds d'un document XML à l'aide de SimpleXML et DOMDocument en PHP ?

Susan Sarandon
Libérer: 2024-10-31 06:15:38
original
1164 Les gens l'ont consulté

How do I delete nodes from an XML document using SimpleXML and DOMDocument in PHP?

Suppression de nœuds dans SimpleXML

Interrogation de nœuds XPath

Pour supprimer un nœud dans SimpleXML à l'aide XPath, suivez ces étapes :

  1. Chargez le document XML dans un objet SimpleXMLElement.
  2. Utilisez la méthode xpath() pour rechercher le nœud souhaité.
  3. Store le résultat dans une variable, par exemple $data.

Suppression de nœud

Pour supprimer le nœud parent du nœud sélectionné, vous ne pouvez pas utiliser unset($ mère). Au lieu de cela, vous devez utiliser la méthode __unset() ou revenir à DOMDocument.

Utilisation de __unset()

La méthode __unset() est appelée lorsque vous essayez de désactiver une propriété d'un objet. Pour supprimer un nœud à l'aide de __unset(), créez un nouvel objet SimpleXMLElement et supprimez le nœud souhaité, comme indiqué ci-dessous :

<code class="php">$newNode = new SimpleXMLElement('<a><b></b></a>');
unset($newNode->b);
echo $newNode->asxml(); // Prints <a></a></code>
Copier après la connexion

L'utilisation de DOMDocument

DOMDocument fournit plus contrôle détaillé de la manipulation XML. Pour supprimer un nœud à l'aide de DOMDocument :

  1. Créez un nouvel objet DOMDocument et chargez le document XML.
  2. Utilisez la méthode xpath() pour rechercher le nœud souhaité.
  3. Supprimez le nœud à l'aide de parentNode->removeChild($node).

Exemple avec DOMDocument

<code class="php">$doc = new DOMDocument;
$doc->loadxml('<foo><items><info><item_id>123</item_id></info></items></foo>');
$item_id = 123;

$xpath = new DOMXpath($doc);
foreach ($xpath->query('//items[info/item_id="' . $item_id . '"]') as $node) {
  $node->parentNode->removeChild($node);
}
echo $doc->savexml(); // Prints <foo><items><info><item_id>123</item_id></info></items></foo></code>
Copier après la connexion

En utilisant ces techniques, vous pouvez supprimez efficacement les nœuds des documents XML à l'aide de SimpleXML et DOMDocument.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal