Maison > Article > développement back-end > Comment supprimer des nœuds d'un document XML à l'aide de SimpleXML et DOMDocument en 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 :
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>
L'utilisation de DOMDocument
DOMDocument fournit plus contrôle détaillé de la manipulation XML. Pour supprimer un nœud à l'aide de DOMDocument :
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>
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!