Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción general de XPath

XSLT utiliza el estándar XML Path Language (XPath) para especificar y localizar elementos en la jerarquía XML del documento de entrada. La poderosa sintaxis de expresión de XPath le permite definir criterios complejos para seleccionar partes del documento de entrada XML.

Nodos y ejes

XPath ve cada parte de la jerarquía del documento como un nodo. Para los scripts de confirmación, scripts de operaciones, scripts de eventos y scripts de SNMP, los tipos importantes de nodos son los nodos de elemento, los nodos de texto y los nodos de atributo. Considere las siguientes etiquetas XML:

Estos elementos de etiqueta XML muestran ejemplos de los siguientes tipos de nodos XPath:

  • <host-name>my-router</host-name>—Nodo de elemento

  • my-router—Nodo de texto

  • inactive="inactive"—Nodo de atributo

XPath considera que los nodos están organizados en determinados ejes. La siguiente lista incluye algunos ejes comunes. Sin embargo, XPath tiene muchos otros ejes que no se enumeran aquí.

  • ancestro: apunta desde un nodo hacia arriba a través de su serie de nodos principales

  • child: apunta a través de la lista de nodos secundarios directos de un nodo de elemento

  • attribute: señala la lista del conjunto de atributos de un nodo de elemento

  • following-sibling: apunta a través de los nodos que siguen a un nodo pero que están bajo el mismo padre

  • descendiente: contiene todos los descendientes de un nodo

XSLT evalúa cada expresión XPath de un nodo en particular, al que se hace referencia como nodo de contexto (o simplemente contexto). El nodo de contexto es el nodo al que el procesador XSLT está mirando actualmente. XSLT cambia el contexto a medida que atraviesa la jerarquía del documento. Evalúa las expresiones XPath de ese nodo de contexto en particular.

Nota:

En las secuencias de comandos de confirmación de Junos OS, el concepto de nodo de contexto corresponde a los niveles de jerarquía de Junos OS. Por ejemplo, la /configuration/system/domain-name expresión XPath establece el nodo de contexto en el [edit system domain-name] nivel de jerarquía.

Recomendamos incluir la plantilla en todos los scripts de <xsl:template match="configuration"> confirmación. Este elemento le permite excluir el /configuration/ elemento raíz de todas las expresiones XPath en las instrucciones de programación (como <xsl:for-each> o <xsl:if>) en el script. Por lo tanto, las expresiones XPath pueden comenzar en un nivel de jerarquía de Junos (por ejemplo, system/domain-name). Para obtener más información, consulte Texto reutilizable necesario para commit scripts.

Sintaxis de ruta y predicado

Una expresión XPath contiene dos tipos de sintaxis: una sintaxis de ruta y una sintaxis de predicado. La sintaxis de ruta especifica qué nodos inspeccionar en términos de sus ubicaciones de ruta en uno de los ejes de la jerarquía del documento desde el nodo de contexto actual. A continuación se muestran varios ejemplos de sintaxis de ruta:

  • accounting-options: selecciona un nodo de elemento denominado accounting-options que es un elemento secundario del contexto actual.

  • server/name: selecciona un nodo de elemento denominado name que es un elemento secundario de un elemento denominado server que es un elemento secundario del contexto actual.

  • /configuration/system/domain-name: selecciona un nodo de elemento denominado domain-name que es el elemento secundario de un elemento denominado system que es el elemento secundario del elemento raíz del documento (configuration).

  • parent::system/host-name: selecciona un nodo de elemento denominado host-name que es el elemento secundario de un elemento denominado system principal del nodo de contexto actual. Puede abreviar el parent:: eje como dos puntos (..).

La sintaxis de predicado le permite realizar pruebas en cada nodo seleccionado por la sintaxis de ruta de acceso. El conjunto de resultados solo incluye los nodos que pasan la prueba. Un predicado aparece entre corchetes ([ ]) después de un nodo de ruta. A continuación se muestran varios ejemplos de sintaxis de predicados:

  • server[name = '10.1.1.1']: selecciona un elemento denominado server que es un elemento secundario del contexto actual y tiene un elemento secundario denominado name cuyo valor es 10.1.1.1.

  • *[@inactive]: selecciona cualquier nodo (* coincide con cualquier nodo) que sea un elemento secundario del contexto actual y que tenga un atributo (@ selecciona nodos del attribute eje) denominado inactive.

  • route[starts-with(next-hop, '10.10.')]: selecciona un elemento denominado route que es un elemento secundario del contexto actual y que tiene un elemento secundario denominado next-hop cuyo valor comienza con la cadena 10.10..

    La starts-with función es una de las muchas funciones integradas en XPath. XPath también admite pruebas relacionales, pruebas de igualdad y muchas más funciones que no se enumeran aquí.

Operadores XPath

XPath admite muchos operadores, por ejemplo:

  • Operadores lógicos, como AND y | (o)

  • Los operadores de comparación, como =, !=, <y >

  • Los operadores numéricos, como +, -y *

Los scripts XSLT son documentos XML. En XSLT, debe representar los signos menores que de la misma manera que lo hace en XML. Por lo tanto, debe representar el operador menor que (<) como &lt; y el operador menor o igual a (<=) como &lt;=.

Para obtener más información sobre las funciones y los operadores de XPath, consulte una guía de referencia completa de XPath. XPath se describe completamente en la especificación del W3C en http://w3c.org/TR/xpath.