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 |