Sintaxe XPath

XPath usa expressões de caminho para selecionar nós ou conjuntos de nós em documentos XML. Os nós são selecionados seguindo um caminho (path) ou passo (steps).

Documento de exemplo XML

Usaremos este documento XML em alguns exemplos a seguir.

<?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>

Selecione nó

XPath usa expressões de caminho para selecionar nós em documentos XML. Os nós são selecionados seguindo um caminho ou passo.

A seguir, listamos as expressões de caminho mais úteis:

Expressão Descrição
nodename Selecione todos os nós filhos deste nó.
/ Selecione a partir do nó raiz.
// Selecione nós no documento que correspondem à seleção atual, independentemente de sua posição.
. Selecione o nó atual.
.. Selecione o nó pai do nó atual.
@ Selecione atributo.

Exemplos

Na tabela a seguir, listamos alguns expressões de caminho e seus resultados:

Expressões de caminho Resultados
bookstore Selecione todos os nós filhos do elemento 'bookstore'.
/bookstore

Selecione o elemento raiz 'bookstore'.

Nota: Se o caminho começa com uma barra invertida (/), ele sempre representa o caminho absoluto até um elemento!

bookstore/book Selecione todos os elementos 'book' que são descendentes do elemento 'bookstore'.
//book Selecione todos os elementos filhos 'book', independentemente de sua posição no documento.
bookstore//book Selecione todos os elementos filhos do elemento 'bookstore', independentemente de sua posição subsequente no 'bookstore'.
@@lang Selecionar todos os atributos chamados lang.

Predicados (Predicados)

O predicado é usado para encontrar um nó específico ou um nó que contenha um valor específico.

O predicado está entre colchetes.

Exemplos

Na tabela a seguir, listamos algumas expressões de caminho com predicados e os resultados dessas expressões:

Expressões de caminho Resultados
/bookstore/book[1] Selecionar o primeiro elemento book que seja filho do elemento bookstore.
/bookstore/book[last()] Selecionar o último elemento book que seja filho do elemento bookstore.
/bookstore/book[last()-1] Selecionar o segundo último elemento book que seja filho do elemento bookstore.
/bookstore/book[position()<3] Selecionar os dois primeiros elementos book que sejam filhos do elemento bookstore.
//title[@lang] Selecionar todos os elementos title que tenham o atributo nomeado lang.
//title[@lang='eng'] Selecionar todos os elementos title que tenham o atributo lang com valor eng.
/bookstore/book[price>35.00] Selecionar todos os elementos book dentro do elemento bookstore, cujo valor do elemento price seja maior que 35.00.
/bookstore/book[price>35.00]/title Selecionar todos os elementos title do elemento book dentro do elemento bookstore, cujo valor do elemento price seja maior que 35.00.

Selecionar nós desconhecidos

Os símbolos de coringa do XPath podem ser usados para selecionar elementos XML desconhecidos.

Símbolos de coringa Descrição
* Coincidir com qualquer nó de elemento.
@* Coincidir com qualquer nó de atributo.
node() Coincidir com qualquer tipo de nó.

Exemplos

Na tabela a seguir, listamos algumas expressões de caminho e os resultados dessas expressões:

Expressões de caminho Resultados
/bookstore/* Selecionar todos os elementos filhos do elemento bookstore.
//* Selecionar todos os elementos do documento.
//title[@*] Selecionar todos os elementos title com atributos.

Selecionar vários caminhos

Ao usar o operador "|" em expressões de caminho, você pode selecionar várias caminhos.

Exemplos

Na tabela a seguir, listamos algumas expressões de caminho e os resultados dessas expressões:

Expressões de caminho Resultados
//book/title | //book/price Selecionar todos os elementos title e price do elemento book.
//title | //price Selecione todos os elementos title e price no documento.
/bookstore/book/title | //price Selecione todos os elementos title pertencentes ao elemento bookstore e todos os elementos price no documento.