Maison >développement back-end >tutoriel php >Comment puis-je filtrer les nœuds XML à l'aide de conditions dans XPath ?

Comment puis-je filtrer les nœuds XML à l'aide de conditions dans XPath ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 22:43:02703parcourir

How Can I Filter XML Nodes Using Conditions in XPath?

Conditions d'implémentation dans XPath

Les expressions XPath offrent la possibilité de sélectionner des éléments ou des nœuds spécifiques à partir d'un document XML. Dans ce contexte, une exigence courante consiste à filtrer ces éléments en fonction de conditions ou de critères particuliers.

Un exemple spécifique de ce besoin est lorsque vous souhaitez sélectionner des nœuds en fonction de leurs attributs. Considérons un fichier XML contenant des événements avec des dates :

<?xml version="1.0" encoding="UTF-8"?>
<xml>
  <events date="12/12/2010">
    <event>
      <title>JqueryEvent</title>
      <description>
        easily
      </description>
    </event>
  </events>
  <events date="14/12/2011">
    <event>
      <title>automatically onBlur</title>
      <description>
        when a date is selected. For an inline calendar, simply attach the datepicker to a div or span.
      </description>
    </event>
  </events>
</xml>

Pour récupérer tous les événements, vous pouvez utiliser l'expression XPath suivante :

$nodes = $xml->xpath('//xml/events');

Cependant, si vous devez sélectionner des événements en fonction de leurs dates, vous pouvez incorporer des expressions conditionnelles dans votre requête XPath :

$nodes = $xml->xpath('//xml/events[@date="14/12/2011"]');

Dans cette expression XPath modifiée, nous spécifions la condition de l'attribut de date entre crochets []. Cette condition filtre les nœuds d'événement avec la valeur de date correspondante, ce qui entraîne une sélection uniquement des événements survenus le "14/12/2011".

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