tutoriais mais recente desenvolvimento web
 

XPath sintaxe


XPath usa expressões de caminho para selecionar nós ou conjuntos de nós em um documento XML. O nó é seleccionado, seguindo um caminho ou passos.


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>

selecionando nós

XPath usa expressões de caminho para selecionar nós em um documento XML. O nó é seleccionado, seguindo um caminho ou passos. As expressões de caminho mais úteis estão listados abaixo:

Expressão Descrição
nodename Seleciona todos os nós com o nome " nodename "
/ Seleciona a partir do nó raiz
// Seleciona os nós do documento a partir do nó atual que correspondam a seleção não importa onde eles estão
. Seleciona o nó atual
.. Seleciona o pai do nó atual
@ seleciona atributos

Na tabela abaixo listamos algumas expressões de caminho e o resultado das expressões:

Expressão caminho Resultado
livraria Seleciona todos os nós com o nome de "bookstore"
/livraria Seleciona o elemento raiz livraria

Note: Se o caminho começa com uma barra ( / ) ele sempre representa um caminho absoluto para um elemento!

livraria / livro Seleciona todos os elementos do livro que são filhos de livraria
//livro Seleciona todos os elementos do livro não importa onde eles estão no documento
livraria // livro Seleciona todos os elementos do livro que são descendente do elemento livraria, não importa onde eles estão sob o elemento livraria
// @ lang Seleciona todos os atributos que são nomeados lang

predicados

Predicados são usados ​​para encontrar um nó específico ou um nó que contém um valor específico.

Predicados são sempre incorporados em colchetes.

Na tabela abaixo listamos algumas expressões de caminho com predicados e o resultado das expressões:

Expressão caminho Resultado
/ Livraria / livro [1] Seleciona o primeiro elemento de livro que é o filho do elemento livraria.

Note: No IE 5,6,7,8,9 primeiro nó é [0], mas de acordo com W3C, é [1]. Para resolver este problema no IE, defina o SelectionLanguage para XPath:

In JavaScript: xml . setProperty("SelectionLanguage","XPath") ;
/ livraria / livro [ last() ] Seleciona o último elemento livro que é o filho do elemento livraria
/ livraria / livro [ last() -1] Seleciona o penúltimo livro elemento que é o filho do elemento livraria
/ livraria / livro [ position() <3] Seleciona os dois primeiros elementos do livro que são filhos do elemento livraria
// título [@ lang] Seleciona todos os elementos do título que têm um atributo chamado lang
// título [@ lang = 'en'] Seleciona todos os elementos do título que têm um atributo "lang" com um valor de "en"
/bookstore/book[price>35.00] Seleciona todos os elementos do livro do elemento livraria que tem um elemento price com um valor maior que 35,00
/bookstore/book[price>35.00]/title Seleciona todos os elementos do título dos elementos do livro do elemento livraria que tem um elemento price com um valor maior que 35,00

A seleção não informada Nodes

wildcards XPath pode ser usado para selecionar nós XML desconhecidos.

Wildcard Descrição
* Corresponde a qualquer nó de elemento
@* Corresponde a qualquer nó de atributo
node() Corresponde a qualquer nó de qualquer tipo

Na tabela abaixo listamos algumas expressões de caminho e o resultado das expressões:

Expressão caminho Resultado
/livraria/* Seleciona todos os nós de elemento filho do elemento livraria
// * Seleciona todos os elementos no documento
//título[@*] Seleciona todos os elementos do título que têm pelo menos um atributo de qualquer tipo

Selecionando Vários Caminhos

Ao utilizar o | operador em uma expressão XPath você pode selecionar vários caminhos.

Na tabela abaixo listamos algumas expressões de caminho e o resultado das expressões:

Expressão caminho Resultado
// book / title | // book / preço Seleciona todos os elementos do título e preço de todos os elementos do livro
// título | //preço Seleciona todos os elementos do título e preço no documento
/ Livraria / livro / title | //preço Seleciona todos os elementos title do elemento de livro do elemento livraria e todos os elementos de preços no documento