Como testar uma expressão XPath
- Cole seu XML, abra um arquivo ou use o catálogo de produtos de exemplo.
- Digite uma expressão XPath ou clique em um dos exemplos. O resultado é atualizado enquanto você digita, e Enter avalia a expressão na hora.
- Leia o resultado: o número de nós encontrados com seu tipo e conteúdo, ou o número, a string ou o booleano que a expressão retorna.
Guia rápido de XPath
| Expressão | Seleciona |
|---|---|
/catalog | O elemento raiz catalog |
//product | Todos os elementos product, em qualquer profundidade |
/catalog/product/name | O name de cada produto, passo a passo a partir da raiz |
//product/@id | O atributo id de todos os produtos |
//product[@category='books'] | Produtos cujo atributo category é books |
//product[price > 20] | Produtos com preço acima de 20, comparados como números |
//product[contains(name, 'USB')] | Produtos cujo nome contém “USB” (diferencia maiúsculas de minúsculas) |
//product[not(tags)] | Produtos sem um filho tags |
(//product)[1] | O primeiro produto do documento |
//product[1] | O primeiro produto dentro de cada elemento pai |
//product[last()] | O último produto dentro de cada elemento pai |
//name/text() | Os nós de texto dentro de name |
//price/.. | O elemento pai de cada price |
//*[local-name()='product'] | Elementos product em qualquer namespace |
count(//product) | O número de produtos |
sum(//price) | A soma de todos os preços |
string(//product[1]/name) | O nome do primeiro produto como string |
Namespaces no XPath
O XPath 1.0 não tem namespace padrão. Em um documento com xmlns="…", como um sitemap ou uma NF-e, //url não encontra nada, porque os elementos pertencem a esse namespace. Por isso o testador associa o namespace padrão ao prefixo x: (ou d:, se x já estiver em uso), e assim //x:url/x:loc funciona. Prefixos declarados no documento, como cfdi: em um CFDI, podem ser usados como estão. Em ferramentas sem configuração de namespaces, //*[local-name()='url'] funciona em qualquer lugar.
Perguntas frequentes
Qual versão do XPath o testador suporta?
XPath 1.0, a versão embutida em todos os navegadores e na maioria das bibliotecas XML. Funções do XPath 2.0 em diante, como matches(), lower-case() ou string-join(), não estão disponíveis.
Por que meu XPath não retorna nada?
As causas mais comuns são um namespace padrão (use o prefixo x: indicado abaixo dos exemplos), diferenças entre maiúsculas e minúsculas – o XPath diferencia as duas – e posições, que começam em 1, não em 0.
Quantos resultados são exibidos?
Todas as correspondências são contadas, e as primeiras 500 são listadas com o tipo de nó e o conteúdo.
Meu XML é enviado para algum servidor?
Não. O XML é analisado e consultado no seu navegador. Só uma URL que você carrega é buscada pelo nosso servidor.