Testador de XPath
Teste expressões XPath 1.0 em XML ou HTML e veja na hora os nós, atributos, textos e resultados numéricos ou de string, usando o motor do navegador.
O que é Testador de XPath?
O testador de XPath avalia uma expressão XPath em um documento XML ou HTML que você colar e mostra o resultado: elementos correspondentes com a marcação e o texto, valores de atributos, ou um número, string ou booleano para expressões como count() ou sum(). Os resultados se atualizam enquanto você digita.
Como usar Testador de XPath
- Digite uma expressão XPath, por exemplo
//book[price > 35]/title. - Escolha se o documento será interpretado como XML ou HTML.
- Cole ou edite o documento.
- Leia o número de correspondências e cada nó encontrado, ou o resultado escalar.
Exemplo
//book[price > 35]/title on the sample bookstore XML
2 matches: Learning XML, XQuery Kick Start
sum(//book/price) retorna 119.94.
Quando usar Testador de XPath
Use para desenvolver XPath para web scraping, localizadores do Selenium/Playwright, XSLT ou processamento de configurações XML. Os navegadores só implementam o XPath 1.0, então funções do XPath 2.0/3.1 (por exemplo matches(), string-join()) não estão disponíveis. Scripts no HTML colado não são executados.
Como funciona Testador de XPath
O documento é interpretado com o DOMParser do navegador (application/xml ou text/html); erros de sintaxe XML são informados. A expressão é avaliada com document.evaluate() – o motor XPath 1.0 nativo do navegador – usando resultados ANY_TYPE, então conjuntos de nós, números, strings e booleanos são todos suportados. Os prefixos de namespace são resolvidos a partir das declarações no elemento raiz. Até 200 correspondências são exibidas.
Casos de Uso Comuns
- Montar um localizador como
//button[normalize-space()="Save"]para testes de interface. - Extrair todos os valores de um atributo com
//book/@category. - Contar ou somar valores em um feed XML.
- Depurar por que um XPath em um scraper não retorna nada.
Perguntas Frequentes
Por que meu XPath com namespace padrão não retorna nada?
No XPath 1.0, nomes sem prefixo nunca correspondem a elementos com namespace. Declare um prefixo no elemento raiz e use-o, ou use *[local-name()='book'].
Devo interpretar como HTML ou XML?
Use HTML para páginas web (análise tolerante, nomes de tag em minúsculas); use XML para feeds, SOAP, sitemaps e configurações.
O XPath 2.0 é suportado?
Não. Todos os principais navegadores só implementam o XPath 1.0.