Maison >développement back-end >tutoriel php >Comment puis-je sélectionner des éléments XML par valeur d'attribut à l'aide de SimpleXML et XPath ?

Comment puis-je sélectionner des éléments XML par valeur d'attribut à l'aide de SimpleXML et XPath ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 02:36:15422parcourir

How Can I Select XML Elements by Attribute Value Using SimpleXML and XPath?

Utiliser SimpleXML pour sélectionner des éléments par valeur d'attribut

Dans les documents XML, la sélection d'éléments avec certaines valeurs d'attribut est une tâche courante. Supposons que vous ayez des éléments portant le même nom, mais que leurs valeurs d'attribut spécifient leur type de données. Pour sélectionner tous les éléments avec une valeur spécifique pour cet attribut, vous pouvez utiliser SimpleXML.

XPath pour la sélection d'attribut

À l'aide de XPath, vous pouvez sélectionner des éléments en fonction des valeurs d'attribut. . Par exemple, pour sélectionner toutes les données éléments avec l'attribut type défini sur "me":

/object/data[@type="me"]

Cette expression XPath signifie :

  • Commencer à partir de l'élément racine "objet".
  • Sélectionner tous les éléments descendants nommés « data ».
  • Filtrez les éléments sélectionnés pour inclure uniquement ceux avec une valeur d'attribut « type » de "moi."

Exemple XML :

Considérez le XML suivant :

<object>
  <data type="me">myname</data>
  <data type="you">yourname</data>
  <data type="me">myothername</data>
</object>

À l'aide de l'expression XPath, vous pouvez sélectionner le contenu de éléments où "type" est égal à "me":

$myDataObjects = $simplexml->xpath('/object/data[@type="me"]');

Si "object" n'est pas l'élément racine, utilisez "//object/data[@type="me"]" pour sélectionner tous les descendants, pas seulement les enfants.

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:
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