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 que você defina critérios complexos para selecionar partes do documento de entrada XML.
Nós e eixos
O XPath exibe cada parte da hierarquia do documento como um nó. Para scripts de confirmação, scripts operacionais, scripts de eventos e scripts SNMP, os tipos importantes de nós são nós de elemento, nós de texto e nós de atributo. Considere as seguintes marcas XML:
<system>
<host-name>my-router</host-name>
<accounting inactive="inactive">
...
</accounting>
</system>
Esses elementos de marca XML mostram exemplos dos seguintes tipos de nós XPath:
-
<host-name>my-router</host-name>— Nó do elemento -
my-router—Nó de texto -
inactive="inactive"— Nó de atributo
O XPath exibe os nós como sendo organizados em determinados eixos. A lista a seguir inclui alguns eixos comuns. No entanto, o XPath possui vários outros eixos que não estão listados aqui.
-
ancestor— Aponta de um nó até sua série de nós pai
-
child— Aponta através da lista de nós filhos diretos de um nó de elemento
-
attribute— Aponta através da lista do conjunto de atributos de um nó de elemento
-
following-sibling— Aponta através dos nós que seguem um nó, mas estão sob o mesmo pai
-
descendente — contém todos os descendentes de um nó
O XSLT avalia cada expressão XPath de um nó específico, que é chamado de nó de contexto (ou simplesmente contexto). O nó de contexto é o nó no qual o processador XSLT está procurando no momento. O XSLT altera o contexto à medida que atravessa a hierarquia do documento. Ele avalia expressões XPath desse nó de contexto específico.
Nos scripts de confirmação 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 [edit system domain-name] nível de hierarquia.
Recomendamos incluir o <xsl:template match="configuration"> modelo em todos os scripts de confirmação. 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. Assim, as expressões XPath podem começar em um nível de hierarquia do Junos (por exemplo, system/domain-name). Para obter mais informações, consulte Boilerplate necessário para scripts de confirmação.
Sintaxe de caminho e predicado
Uma expressão XPath contém dois tipos de sintaxe: uma sintaxe de caminho e uma sintaxe de predicado. A sintaxe do caminho especifica quais nós inspecionar em termos de seus locais de caminho em um dos eixos na hierarquia do documento a partir do nó de contexto atual. Vários exemplos de sintaxe de caminho a seguir:
accounting-options— Seleciona um nó de elemento chamadoaccounting-optionsque é filho do contexto atual.server/name— Seleciona um nó de elemento chamadonameque é filho de um elemento chamadoserverfilho do contexto atual./configuration/system/domain-name— Seleciona um nó de elemento chamadodomain-nameque é filho de um elemento chamadosystemfilho do elemento raiz do documento (configuration).parent::system/host-name— Seleciona um nó de elemento chamadohost-nameque é filho de um elemento chamadosystemque é o pai do nó de contexto atual. Você pode abreviar oparent::eixo como dois pontos (..).
A sintaxe de predicado permite que você execute testes em cada nó selecionado pela sintaxe de caminho. O conjunto de resultados inclui apenas os nós que passam no teste. Um predicado aparece entre colchetes ([ ]) após um nó de caminho. A seguir estão vários exemplos de sintaxe de predicado:
server[name = '10.1.1.1']— Seleciona um elemento chamadoserverque é filho do contexto atual e tem um elemento filho chamadonamecujo valor é 10.1.1.1.*[@inactive]— Seleciona qualquer nó (*corresponde a qualquer nó) que seja filho do contexto atual e que tenha um atributo (@seleciona nós doattributeeixo) chamadoinactive.route[starts-with(next-hop, '10.10.')]— Seleciona um elemento chamadorouteque é filho do contexto atual e que tem um elemento filho chamadonext-hopcujo valor começa com a string 10.10..A
starts-withfunção é uma das muitas funções incorporadas ao XPath. O XPath também oferece suporte a testes relacionais, testes de igualdade e muitos outros recursos não listados aqui.
Operadores XPath
O XPath oferece suporte a muitos operadores, por exemplo:
-
Operadores lógicos, como
ANDe|(ou) -
Operadores de comparação, como
=,!=,<e> -
Operadores numéricos, como
+,-e*
Os scripts XSLT são documentos XML. No XSLT, você deve representar os sinais de menor que da mesma forma que faz no XML. Assim, você deve representar o operador menor que (<) como < e o operador menor que ou igual a (<=) como <=.
Para obter mais informações sobre as funções e operadores do XPath, consulte um guia de referência abrangente do XPath. XPath é totalmente descrito na especificação W3C em http://w3c.org/TR/xpath.