Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Présentation de XPath

XSLT utilise la norme XPath (XML Path Language ) pour spécifier et localiser des éléments dans la hiérarchie XML du document d’entrée. La syntaxe d’expression puissante de XPath vous permet de définir des critères complexes pour sélectionner des parties du document d’entrée XML.

Nœuds et axes

XPath considère chaque élément de la hiérarchie de documents comme un nœud. Pour les scripts de validation, les scripts op, les scripts d’événement et les scripts SNMP, les principaux types de nœuds sont les nœuds d’élément, les nœuds de texte et les nœuds attributs. Tenez compte des balises XML suivantes :

Ces éléments de balise XML présentent des exemples des types suivants de nœuds XPath :

  • <host-name>my-router</host-name>—Nœud d’élément

  • my-router—Nœud de texte

  • inactive="inactive"—Nœud d’attribut

Les nœuds sont considérés comme étant disposés selon certains axes. L’axe ancêtre pointe d’un nœud vers le haut à travers sa série de nœuds parents. L’axe enfant pointe à travers la liste des nœuds enfants directs d’un nœud d’élément. L’axe des attributs pointe à travers la liste de l’ensemble d’attributs d’un nœud d’élément. L’axe frère suivant pointe à travers les nœuds qui suivent un nœud mais qui se trouvent sous le même parent. L’axe descendant contient tous les descendants d’un nœud. Il existe de nombreux autres axes qui ne sont pas répertoriés ici.

Chaque expression XPath est évaluée à partir d’un nœud particulier, appelé nœud de contexte (ou simplement contexte). Le nœud de contexte est le nœud sur lequel le processeur XSLT recherche actuellement. XSLT modifie le contexte à mesure que la hiérarchie du document est parcourue et les expressions XPath sont évaluées à partir de ce nœud de contexte particulier.

Note:

Dans les scripts de validation Junos OS, le concept de nœud contextuel correspond aux niveaux hiérarchiques de Junos OS. Par exemple, l’expression /configuration/system/domain-name XPath définit le nœud de contexte au niveau de la [edit system domain-name] hiérarchie.

Nous vous recommandons d’inclure le <xsl:template match="configuration"> modèle dans tous les scripts de validation. Cet élément vous permet d’exclure l’élément /configuration/ racine de toutes les expressions XPath dans les instructions de programmation (telles que <xsl:for-each> ou <xsl:if>) dans le script, vous permettant ainsi de commencer les expressions XPath au niveau de la hiérarchie Junos (par exemple, system/domain-name). Pour plus d’informations, consultez Passe-partout requis pour les scripts de validation.

Syntaxe du chemin d’accès et du prédicat

Une expression XPath contient deux types de syntaxe, une syntaxe de chemin et une syntaxe de prédicat. La syntaxe de chemin spécifie les nœuds à inspecter en fonction de leur emplacement de chemin sur l’un des axes de la hiérarchie du document à partir du nœud de contexte actuel. Voici plusieurs exemples de syntaxe de chemin :

  • accounting-options: sélectionne un nœud d’élément nommé accounting-options enfant du contexte actuel.

  • server/name—Sélectionne un nœud d’élément nommé qui est un enfant d’un élément nommé name server qui est un enfant du contexte actuel.

  • /configuration/system/domain-name—Sélectionne un nœud d’élément nommé qui est l’enfant d’un élément nommé domain-name system qui est l’enfant de l’élément racine du document (configuration).

  • parent::system/host-name: sélectionne un nœud d’élément nommé qui est l’enfant d’un élément nommé host-name system qui est le parent du nœud de contexte actuel. L’axe parent:: peut être abrégé en deux points (..).

La syntaxe de prédicat vous permet d’effectuer des tests sur chaque nœud sélectionné par la syntaxe de chemin. Seuls les nœuds qui réussissent le test sont inclus dans le jeu de résultats. Un prédicat apparaît entre crochets ([ ]) après un nœud de chemin d’accès. Voici quelques exemples de syntaxe de prédicat :

  • server[name = '10.1.1.1']: sélectionne un élément nommé server qui est un enfant du contexte actuel et dont name la valeur est 10.1.1.1.

  • *[@inactive]: sélectionne tout nœud (correspond à n’importe quel nœud) enfant du contexte actuel et ayant un attribut (*@sélectionne les nœuds de l’axeattribute) nommé inactive.

  • route[starts-with(next-hop, '10.10.')]: sélectionne un élément nommé route qui est un enfant du contexte actuel et dont next-hop la valeur commence par la chaîne 10.10..

    La starts-with fonction est l’une des nombreuses fonctions intégrées à XPath. XPath prend également en charge les tests relationnels, les tests d’égalité et bien d’autres fonctionnalités non répertoriées ici.

Opérateurs XPath

XPath prend en charge les opérateurs logiques standard, tels que et (ou), les opérateurs de comparaison, tels que =, , et | >les opérateurs numériques, tels que AND +, !=<-et *.

En XSLT, vous devez toujours représenter l’opérateur inférieur à () comme et l’opérateur inférieur ou égal à (<<=) comme &lt; &lt;= car les scripts XSLT sont des documents XML et les signes inférieurs à sont représentés de cette façon en XML.

Pour plus d’informations sur les fonctions et les opérateurs XPath, consultez un guide de référence XPath complet. XPath est décrit en détail dans la spécification W3C au http://w3c.org/TR/xpath.