Maison >développement back-end >tutoriel php >Comment supprimer efficacement un élément enfant avec un attribut spécifique dans SimpleXML de PHP ?
Dans SimpleXML, accéder et modifier des documents XML peut être pratique. Cependant, lorsqu'il s'agit de supprimer des éléments enfants spécifiques, certaines limitations peuvent survenir.
Considérez la structure XML suivante :
<data> <seg>
Pour supprimer l'élément seg avec un identifiant "A12" à l'aide SimpleXML, vous pouvez essayer le code suivant :
foreach($doc->seg as $seg) { if($seg['id'] == 'A12') { unset($seg); } }
Malheureusement, cette approche ne supprimera pas l'élément souhaité en raison de la modification superficielle de SimpleXML. profondeur. Pour vraiment le supprimer, envisagez d'utiliser la solution suivante :
L'extension DOM fournit une méthode alternative pour modifier les documents XML. En convertissant votre SimpleXMLElement en DOMElement à l'aide de dom_import_simplexml(), vous pouvez accéder à des capacités de manipulation plus puissantes.
$data = '<data> <seg>
Ce code supprime avec succès l'élément segment cible, ce qui donne le XML suivant :
<?xml version="1.0"?> <data><seg>
De plus, l'utilisation de XPath avec SimpleXML fournit un moyen concis pour sélectionner des nœuds spécifiques :
$segs = $doc->xpath('//seg[@id="A12"]'); if (count($segs) >= 1) { $seg = $segs[0]; } // Same deletion procedure as above
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!