EN ESTA PÁGINA
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:
<system> <host-name>my-router</host-name> <accounting inactive="inactive"> </system>
Estos elementos de etiqueta XML muestran ejemplos de los siguientes tipos de nodos XPath:
<host-name>my-router</host-name>
—Nodo de elementomy-router
— Nodo de textoinactive="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.
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 denominadoaccounting-options
que es un elemento secundario del contexto actual.server/name
: selecciona un nodo de elemento denominadoname
que es un elemento secundario de un elemento denominadoserver
que es un elemento secundario del contexto actual./configuration/system/domain-name
: selecciona un nodo de elemento denominadodomain-name
que es el elemento secundario de un elemento denominadosystem
que es el elemento secundario del elemento raíz del documento (configuration
).parent::system/host-name
: selecciona un nodo de elemento denominadohost-name
que es el elemento secundario de un elemento denominadosystem
que es el elemento principal del nodo de contexto actual. Elparent::
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 denominadoserver
que es un elemento secundario del contexto actual y tiene un elemento secundario denominadoname
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 delattribute
eje) denominadoinactive
.route[starts-with(next-hop, '10.10.')]
: selecciona un elemento denominadoroute
que es un elemento secundario del contexto actual y que tiene un elemento secundario denominadonext-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 <
y el operador menos que o igual a (<=
), ya <=
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.