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 les éléments dans la hiérarchie XML du document d’entrée. La puissante syntaxe d’expression 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 des documents comme un nœud. Pour les scripts de validation, les scripts op, les scripts d’événements et les scripts SNMP, les types de nœuds importants sont les nœuds d’élément, les nœuds de texte et les nœuds d’attribut. Considérez les balises XML suivantes :

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

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

  • my-router: nœud de texte

  • inactive="inactive": nœud d’attribut

XPath considère les nœuds comme étant disposés selon certains axes. La liste suivante comprend quelques axes communs. Cependant, XPath a de nombreux autres axes qui ne sont pas répertoriés ici.

  • ancestor : pointe d’un nœud vers le haut à travers sa série de nœuds parents

  • child : pointe à travers la liste des nœuds enfants directs d’un nœud d’élément

  • attribute : pointe à travers la liste de l’ensemble d’attributs d’un nœud d’élément

  • follow-sibling : pointe à travers les nœuds qui suivent un nœud, mais qui se trouvent sous le même parent

  • descendant : contient tous les descendants d’un nœud

XSLT évalue chaque expression XPath à 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 est actuellement en train de regarder. XSLT modifie le contexte lorsqu’il traverse la hiérarchie du document. Il évalue les expressions XPath à partir de ce nœud de contexte particulier.

Note:

Dans les scripts de validation Junos OS, le concept de nœud de contexte 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 commit. 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. Ainsi, les expressions XPath peuvent commencer au niveau d’une hiérarchie Junos (par exemple, system/domain-name). Pour plus d’informations, consultez Boilerplate requis pour les scripts de validation.

Syntaxe des chemins et des prédicats

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

  • accounting-options: sélectionne un noeud d’élément nommé accounting-options qui est un enfant du contexte actuel.

  • server/name: sélectionne un noeud d’élément nommé name qui est un enfant d’un élément nommé server qui est un enfant du contexte actuel.

  • /configuration/system/domain-name: sélectionne un noeud d’élément nommé domain-name qui est l’enfant d’un élément nommé system qui est l’enfant de l’élément racine du document (configuration).

  • parent::system/host-name: sélectionne un noeud d’élément nommé host-name qui est l’enfant d’un élément nommé system qui est le parent du noeud de contexte actuel. Vous pouvez abréger l’axe parent:: en deux points (..).

La syntaxe de prédicat vous permet d’effectuer des tests pour chaque nœud sélectionné par la syntaxe de chemin. Le jeu de résultats inclut uniquement les nœuds qui réussissent le test. Un prédicat apparaît entre crochets ([ ]) après un nœud de chemin. 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 a un élément enfant nommé name dont la valeur est 10.1.1.1.

  • *[@inactive]: sélectionne tout nœud (* correspond à n’importe quel nœud) qui est un enfant du contexte courant et qui a un attribut (@ sélectionne les nœuds de l’axe attribute ) nommé inactive.

  • route[starts-with(next-hop, '10.10.')]: sélectionne un élément nommé route qui est un enfant du contexte actuel et qui a un élément enfant nommé next-hop dont 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 de nombreux opérateurs, par exemple :

  • Opérateurs logiques, tels que AND et | (ou)

  • Les opérateurs de comparaison, tels que =, <!=, et>

  • Les opérateurs numériques, tels que +, -et *

Les scripts XSLT sont des documents XML. En XSLT, vous devez représenter les signes inférieurs de la même manière qu’en XML. Par conséquent, vous devez représenter l’opérateur &lt; inférieur à (<) comme et l’opérateur inférieur ou égal à (<=) comme &lt;=.

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