NESTA PÁGINA
Visão geral do XPath
O XSLT usa o padrão XML Path Language (XPath) para especificar e localizar elementos na hierarquia XML do documento de entrada. A poderosa sintaxe de expressão do XPath permite definir critérios complexos para a seleção de partes do documento de entrada XML.
Nós e machados
A XPath vê cada pedaço da hierarquia de documentos como um nó. Para scripts de compromisso, scripts de operação, scripts de eventos e scripts SNMP, os tipos importantes de nós são nós de elementos, nós de texto e nós atributos. Considere as seguintes tags XML:
<system> <host-name>my-router</host-name> <accounting inactive="inactive"> </system>
Esses elementos de tag XML mostram exemplos dos seguintes tipos de nós XPath:
<host-name>my-router</host-name>
— Nó de elementomy-router
— Nó de textoinactive="inactive"
— Nó de atributo
Nós são vistos como sendo organizados em certos eixos. O eixo antepassado aponta de um nó até sua série de nós-pais. O eixo infantil aponta através da lista de nós infantis diretos de um nó de elemento. O eixo de atributo aponta através da lista de atributos de um nó de elemento. O eixo seguinte-irmão aponta através dos nós que seguem um nó, mas estão sob o mesmo pai. O eixo descendente contém todos os descendentes de um nó. Existem inúmeros outros eixos que não estão listados aqui.
Cada expressão XPath é avaliada a partir de um nó específico, que é chamado de nó de contexto (ou simplesmente contexto). O nó de contexto é o nó em que o processador XSLT está procurando no momento. O XSLT muda o contexto à medida que a hierarquia do documento é atravessada, e as expressões do XPath são avaliadas a partir desse nó de contexto específico.
Nos scripts de compromisso do Junos OS, o conceito de nó de contexto corresponde aos níveis de hierarquia do Junos OS. Por exemplo, a /configuration/system/domain-name
expressão XPath define o nó de contexto para o nível de [edit system domain-name]
hierarquia.
Recomendamos incluir o <xsl:template match="configuration">
modelo em todos os scripts de compromisso. Esse elemento permite que você exclua o /configuration/
elemento raiz de todas as expressões XPath em instruções de programação (como <xsl:for-each>
ou <xsl:if>
) no script, permitindo assim que você inicie expressões de XPath em um nível de hierarquia Junos (por exemplo system/domain-name
). Para obter mais informações, consulte o Required Boilerplate for Commit Scripts.
Sintaxe de caminho e predicado
Uma expressão XPath contém dois tipos de sintaxe, uma sintaxe de caminho e uma sintaxe predicado. A sintaxe de caminho especifica quais nós inspecionar em termos de seus locais de caminho em um dos eixos da hierarquia do documento a partir do nó de contexto atual. Vários exemplos de sintaxe de caminho seguem:
accounting-options
— Selecione um nó de elemento nomeadoaccounting-options
como uma criança do contexto atual.server/name
— Seleciona um nó de elemento chamadoname
filho de um elemento chamadoserver
criança do contexto atual./configuration/system/domain-name
— Selecione um nó de elemento chamadodomain-name
filho de um elemento chamadosystem
filho do elemento raiz do documento ().configuration
parent::system/host-name
— Seleciona um nó de elemento chamadohost-name
filho de um elemento chamadosystem
pai do nó de contexto atual. Oparent::
eixo pode ser abreviado como dois períodos (..
).
A sintaxe predicado permite realizar testes em cada nó selecionado pela sintaxe do caminho. Apenas nós que passam no teste estão incluídos no conjunto de resultados. Um predicado aparece dentro de suportes quadrados ([ ]
) após um nó de caminho. A seguir estão vários exemplos de sintaxe predicado:
server[name = '10.1.1.1']
— Seleciona um elemento chamadoserver
criança do contexto atual e tem um elemento infantil chamadoname
cujo valor é 10.1.1.1.*[@inactive]
— Selecione qualquer nó (*
corresponda a qualquer nó) que seja uma criança do contexto atual e que tenha um atributo (@
selecione nós doattribute
eixo) chamadoinactive
.route[starts-with(next-hop, '10.10.')]
— Seleciona um elemento chamadoroute
criança do contexto atual e que tem um elemento infantil chamadonext-hop
cujo valor começa com a corda 10.10..A
starts-with
função é uma das muitas funções incorporadas ao XPath. A XPath também oferece suporte a testes relacionais, testes de igualdade e muito mais recursos não listados aqui.
Operadores XPath
A XPath oferece suporte a operadores lógicos padrão, como AND
e |
(ou); operadores de comparação, como =
, !=
, <
e ; e >
operadores numéricos, como +
, -
e *
.
No XSLT, você sempre precisa representar o operador menor do que (<
) como <
e o operador menos que igual ou igual a (<=
) como <=
porque os scripts XSLT são documentos XML, e menos do que sinais são representados dessa forma no XML.
Para obter mais informações sobre as funções e operadores do XPath, consulte um guia de referência abrangente do XPath. O XPath é totalmente descrito na especificação W3C em http://w3c.org/TR/xpath.