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
1058 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!

source:php.cn
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