Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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 . 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:

Esses elementos de tag XML mostram exemplos dos seguintes tipos de nós XPath:

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

  • my-router— Nó de texto

  • inactive="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.

Nota:

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 nomeado accounting-options como uma criança do contexto atual.

  • server/name— Seleciona um nó de elemento chamado name filho de um elemento chamado server criança do contexto atual.

  • /configuration/system/domain-name— Selecione um nó de elemento chamado domain-name filho de um elemento chamado system filho do elemento raiz do documento ().configuration

  • parent::system/host-name— Seleciona um nó de elemento chamado host-name filho de um elemento chamado system pai do nó de contexto atual. O parent:: 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 chamado server criança do contexto atual e tem um elemento infantil chamado name 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 do attribute eixo) chamado inactive.

  • route[starts-with(next-hop, '10.10.')]— Seleciona um elemento chamado route criança do contexto atual e que tem um elemento infantil chamado next-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 &lt; e o operador menos que igual ou igual a (<=) como &lt;= 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.