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

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

Nodos y ejes

XPath visualiza cada pieza de la jerarquía de documentos como un nodo. Para scripts de confirmación, scripts operativos, secuencias de comandos de eventos y scripts SNMP, los tipos importantes de nodos son nodos de elemento, nodos de texto y nodos de atributo. Tenga en cuenta 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

Los nodos se consideran organizados en ciertos ejes. El eje antecesor apunta desde un nodo hasta su serie de nodos principales. El eje secundario apunta a través de la lista de nodos secundarios directos de un nodo de elemento. El eje de atributo apunta a través de la lista del conjunto de atributos de un nodo de elemento. Los siguientes puntos de eje hermanos a través de los nodos que siguen un nodo, pero están bajo el mismo elemento principal. El eje descendiente contiene todos los descendientes de un nodo. Hay muchos otros ejes que no se enumeran aquí.

Cada expresión XPath se evalúa desde un nodo determinado, al que se hace referencia como nodo de contexto (o simplemente contexto). El nodo de contexto es el nodo en el que el procesador XSLT está buscando actualmente. LA XSLT cambia el contexto a medida que se atraviesa la jerarquía del documento y las expresiones XPath se evalúan desde ese nodo de contexto determinado.

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 jerárquico.

Recomendamos incluir la <xsl:template match="configuration"> plantilla en todos los scripts de 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 la secuencia de comandos, lo que le permite comenzar expresiones XPath en un nivel de jerarquía de Junos (por ejemplo, system/domain-name). Para obtener más información, consulte Required Boilerplat para confirmar scripts.

Sintaxis de ruta y predicación

Una expresión XPath contiene dos tipos de sintaxis, una sintaxis de ruta y una sintaxis de predicación. La sintaxis de ruta especifica qué nodos se deben 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 exponen 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 que es el elemento principal del nodo de contexto actual. El parent:: eje se puede abreviar como dos puntos (..).

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

  • 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 (* que coincida 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 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 operadores lógicos estándar, como AND y | (o); operadores de comparación, como =, !=, , <y >; y operadores numéricos, como +, -y *.

En XSLT, siempre debe representar el operador menor que (<) como &lt; y el operador menos que o igual a (<=), ya &lt;= que las secuencias de comandos XSLT son documentos XML y los signos inferiores se representan de esta manera en XML.

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