tutoriais mais recente desenvolvimento web
 

XPath Eixos


O Exemplo documento XML

Nós vamos usar o seguinte documento XML nos exemplos abaixo.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

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

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

</bookstore>

XPath Eixos

Um eixo define um conjunto de nós em relação ao nó actual.

AxisName Resultado
antepassado Seleciona todos os ancestrais (parent, grandparent, etc.) do nó atual
antepassado-or-self Seleciona todos os ancestrais (parent, grandparent, etc.) do nó atual e do próprio nó atual
atributo Seleciona todos os atributos do nó atual
criança Seleciona todos os filhos do nó atual
descendente Seleciona todos os descendentes (children, grandchildren, etc.) do nó atual
descendente-ou-auto Seleciona todos os descendentes (children, grandchildren, etc.) do nó atual e do próprio nó atual
Segue Seleciona tudo no documento depois da tag de fechamento do nó atual
seguindo-irmão Seleciona todos os irmãos depois do nó atual
namespace Seleciona todos os nós namespace do nó atual
parente Seleciona o pai do nó atual
precedente Seleciona todos os nós que aparecem antes do nó atual no documento, exceto antepassados, atribuir nós e nós namespace
precedente-irmão Seleciona todos os irmãos antes do nó atual
auto Seleciona o nó atual

Localização Path Expression

A caminho do local pode ser absoluta ou relativa.

Um caminho local absoluto começa com uma barra ( / ) e um caminho localização relativa não. Em ambos os casos, a caminho do local consiste em um ou mais passos, cada um separado por uma barra:

An absolute location path:

/step/step/...

A relative location path:

step/step/...

Cada passo é avaliado contra os nós no atual nó-set.

Um passo consiste em:

  • um eixo (defines the tree-relationship between the selected nodes and the current node)
  • um nó-teste (identifies a node within an axis)
  • zero ou mais predicados (to further refine the selected node-set)

A sintaxe para uma etapa de localização é:

axisname::nodetest[predicate]

Exemplos

Exemplo Resultado
child :: livro Seleciona todos os nós livro que são filhos do nó atual
atribuir :: lang Seleciona o lang atributo do nó atual
criança::* Seleciona todas as crianças elemento do nó atual
atributo::* Seleciona todos os atributos do nó atual
child :: text() Seleciona todos os filhos do nó de texto do nó atual
child :: node() Seleciona todos os filhos do nó atual
descendente :: livro Seleciona todos os descendentes do livro do nó atual
ancestral :: livro Seleciona todos os ancestrais do livro do nó atual
antepassado-or-self :: livro Seleciona todos os ancestrais do livro do nó atual - eo atual, bem se é um nó livro
child :: * / child :: preço Seleciona todos os netos de preços do nó atual