Eixos (Axes) do XPath

Documento de exemplo XML

Vamos usar este documento XML em nossos exemplos a seguir:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

Axe XPath

O eixo pode definir um conjunto de nós em relação ao nó atual. Resultados
Nome do eixo 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. Selecionar todas as propriedades do nó atual.
attribute Selecionar todos os elementos filhos do nó atual.
child 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 namespace 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 irmãos anteriores ao nó atual. self

Selecionar o nó atual.

Expressão do caminho de posição

A expressão do caminho de posição pode ser absoluta ou relativa.

O caminho de posição pode ser absoluto ou relativo. No entanto, o caminho absoluto começa com uma barra invertida (/), enquanto o caminho relativo não. Em ambos os casos, o caminho de posição inclui um ou mais passos, cada um deles separado por uma barra:

/step/step/...

Caminho relativo de posição:

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]

Exemplos

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