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 os caminhos ou etapas.
Documentos de exemplo XML
Usaremos este documento XML no exemplo a seguir.
<? xml version = "1.0" encoding = "ISO-8859-1"?> <bookstore> <book> <title lang = "eng"> Harry Potter </title> <preço> 29,99 </ preço> </ livro > <book> <title lang = "eng"> Aprendendo XML </title> <price> 39.95 </price> </book> </bookstore>
Selecionar nó
XPath usa expressões de caminho para selecionar nós nos documentos XML. Os nós são selecionados seguindo um caminho ou etapa.
As expressões de caminho mais úteis estão listadas abaixo:
Expressão | Descrição do produto |
---|---|
nodename | Selecione todos os nós filhos deste nó. |
/ | Selecione no nó raiz. |
// | Selecione os nós no documento no nó atual que corresponde à seleção, independentemente de sua localização. |
. | Selecione o nó atual. |
.. | Selecione o nó pai do nó atual. |
@ | Selecione atributos. |
Exemplos
Na tabela a seguir, listamos algumas expressões de caminho e os resultados das expressões:
Expressão de caminho | O resultado |
---|---|
livraria | Selecione todos os nós filhos do elemento livraria. |
/livraria | Selecione a livraria de elementos raiz. Nota: Se o caminho começar com uma barra (/), esse caminho sempre representa o caminho absoluto para um elemento! |
livraria / livro | Selecione todos os elementos do livro que são elementos filho da livraria. |
//livro | Selecione todos os elementos filho do livro, independentemente de sua posição no documento. |
livraria // livro | Selecione todos os elementos do livro que são descendentes do elemento da livraria, independentemente de onde eles estejam localizados na livraria. |
// @ lang | Selecione todos os atributos chamados lang. |
Predicados
O predicado é usado para encontrar um nó específico ou um nó que contém um valor especificado.
O predicado é incorporado entre colchetes.
Exemplos
Na tabela a seguir, listamos algumas expressões de caminho com predicados e os resultados das expressões:
Expressão de caminho | O resultado |
---|---|
/ livraria / livro [1] | Selecione o primeiro elemento do livro que é um elemento filho da livraria. |
/ livraria / livro [last ()] | Selecione o último elemento do livro que é um elemento filho da livraria. |
/ livraria / livro [last () - 1] | Selecione o penúltimo elemento do livro que é um elemento filho da livraria. |
/ livraria / livro [position () <3] | Selecione os dois primeiros elementos do livro que são elementos filho do elemento da livraria. |
// título [@lang] | Selecione todos os elementos de título que possuem um atributo chamado lang. |
// title [@ lang = 'eng'] | Selecione todos os elementos de título e esses elementos têm um atributo lang com um valor de eng. |
/bookstore/book[price>35.00] | Selecione todos os elementos do livro do elemento livraria e o valor do elemento preço deve ser maior que 35,00. |
/bookstore/book[price>35.00✨/title | Selecione todos os elementos de título do elemento book no elemento bookstore e o valor do elemento price deve ser maior que 35,00. |
Selecionar nó desconhecido
Os curingas XPath podem ser usados para selecionar elementos XML desconhecidos.
Curinga | Descrição do produto |
---|---|
* | Corresponda a qualquer nó do elemento. |
@ * | Corresponda a qualquer nó de atributo. |
nó() | Corresponda a qualquer tipo de nó. |
Exemplos
Na tabela a seguir, listamos algumas expressões de caminho e os resultados dessas expressões:
Expressão de caminho | O resultado |
---|---|
/livraria/* | Selecione todos os elementos filho do elemento livraria. |
// * | Selecione todos os elementos no documento. |
//título[@*] | Selecione todos os elementos de título com atributos. |
Selecione vários caminhos
Você pode escolher vários caminhos usando o operador "|" na expressão do caminho.
Exemplos
Na tabela a seguir, listamos algumas expressões de caminho e os resultados dessas expressões:
Expressão de caminho | O resultado |
---|---|
// livro / título | // livro / preço | Selecione todos os elementos de título e preço do elemento de livro. |
// title | //preço | Selecione todos os elementos de título e preço no documento. |
/ livraria / livro / título | //preço | Selecione todos os elementos de título que pertencem ao elemento de livro do elemento de livraria e todos os elementos de preço no documento. |