Eixos (Axes) XPath

Documento de exemplo XML

Usaremos este documento XML em nossos exemplos abaixo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

Eixo XPath

O eixo pode definir um conjunto de nós relativamente ao nó atual.

Nome do eixo Resultados
ancestor Selecionar todos os antepassados do nó atual (pai, avô, etc.).
ancestor-or-self Selecionar todos os antepassados do nó atual (pai, avô, etc.) e o nó atual em si.
attribute Selecione todas as propriedades do nó atual
child Selecione todos os elementos filhos do nó atual
descendant Selecionar todos os elementos descendentes do nó atual (filhos, netos, etc.).
descendant-or-self Selecionar todos os elementos descendentes do nó atual (filhos, netos, etc.) e o nó atual em si.
following Selecionar todos os nós após a tag de fim do nó atual no documento.
namespace Selecionar todos os nós de espaço de nomes do nó atual.
parent Selecionar o nó pai do nó atual.
preceding Selecionar todos os nós antes da tag de início do nó atual no documento.
preceding-sibling Selecionar todos os nós同级 ao nó atual.
self Selecionar o nó atual.

Expressão de caminho de localização

O caminho de localização pode ser absoluto ou relativo.

O caminho absoluto começa com a barra invertida ( / ) e o caminho relativo não é assim. Em ambos os casos, o caminho de localização inclui um ou mais passos, cada um deles separado por uma barra:

Caminho de posição absoluto:

/step/step/...

Caminho de posição relativo:

step/step/...

Cada passo é calculado com base nos nós no conjunto de nós atual

Passo (step) inclui:

Eixo (axis)
Definir a relação de árvore entre o nó selecionado e o nó atual
Teste de nó (node-test)
Identificar nós dentro de um eixo específico
Zero ou mais predicados (predicate)
Refinar mais profundamente o conjunto de nós selecionados

Sintaxe do passo:

Nome do eixo::teste de nó [predicado]

Instâncias

Exemplos Resultados
child::book Selecione todos os nós book que pertencem a todos os elementos filhos do nó atual
attribute::lang Selecione a propriedade lang do nó atual
child::* Selecione todos os elementos filhos do nó atual
attribute::* Selecione todas as propriedades do nó atual
child::text() Selecione todos os nós filhos de texto do nó atual
child::node() Selecione todos os nós filhos do nó atual
descendant::book Selecione todos os descendentes book do nó atual
ancestor::book Selecione todos os antecessores book do nó atual
ancestor-or-self::book Selecione todos os antecessores book do nó atual e o nó atual (se este nó for um nó book)
child::*/child::price Selecione todos os descendentes price do nó atual.