Testador de XPath
Documento XML ou HTML
Cole XML ou HTML com até 1.000.000 de caracteres. A avaliação acontece neste navegador com XPath 1.0.
XPath 1.0 absoluto ou relativo. Os prefixos declarados no documento são registrados automaticamente; o namespace padrão fica disponível com o prefixo d.
Avaliar XPathEscrever XPath para scraping ou XSLT vira tentativa e erro se você não tem um ambiente de teste ao vivo. Este testador recebe seu XML ou HTML em um painel e sua expressão em outro, avalia XPath 1.0 com o motor do seu próprio navegador e lista cada nó encontrado com tipo, atributos, conteúdo de texto e marcação serializada. Expressões escalares como count(//book) retornam o valor diretamente, e os prefixos de namespace declarados no documento são registrados para você. Tudo roda no seu navegador: o documento nunca é enviado para servidor nenhum.
Como testar uma expressão XPath
-
1
Cole XML ou HTML
A detecção automática muda para a análise HTML tolerante ao ver um doctype ou uma raiz HTML; você também pode forçar o modo XML ou HTML.
-
2
Digite seu XPath
Absoluta (`/library/book`) ou relativa (`//div[@class='card']`), qualquer expressão XPath 1.0.
-
3
Avalie
O motor XPath do seu navegador executa a consulta localmente; nada é enviado a servidor algum.
-
4
Inspecione os resultados
Cada correspondência mostra o tipo de nó, os atributos, o texto aparado e a marcação serializada; até 200 correspondências são listadas.
O essencial do XPath 1.0
| Expressão | O que seleciona |
|---|---|
/books/book |
Os <book> filhos da raiz <books> |
//book |
Todo <book> em qualquer lugar do documento |
//book[@id='42'] |
Os <book> com atributo id igual a 42 |
//book[1] |
O primeiro <book> de cada pai (não do documento) |
(//book)[1] |
O primeiro <book> do documento inteiro |
//book[title='1984'] |
Os <book> cujo texto de <title> é “1984” |
//book/@id |
Os atributos id de todos os elementos <book> |
//book[position() > 1] |
Todos os <book> menos o primeiro |
//book[last()] |
O último <book> de cada pai |
Expressões escalares também funcionam: count(//book) retorna um número, string(//title) uma string e boolean(//book[@id]) verdadeiro ou falso. O testador mostra esses valores diretamente em vez de uma lista de nós.
Eixos comuns além de child
ancestor::, todos os ancestraisfollowing-sibling::, os irmãos depois do nó atualpreceding-sibling::, os irmãos anterioresdescendant::, todos os descendentesattribute::(atalho@), os atributos do nó atualparent::(atalho..), o elemento pai
Peculiaridades do HTML
HTML não é XML estrito, então o testador o analisa com tolerância usando o parser HTML do seu navegador em vez do parser XML estrito. O modo HTML é detectado automaticamente a partir de <!DOCTYPE html> ou de uma raiz <html>, e você pode forçar qualquer um dos modos com o seletor de modo do documento. No modo HTML, os nomes de tags e atributos ficam em minúsculas, então escreva seu XPath em minúsculas: //div[@class], não //DIV[@CLASS].
Namespaces
XML com namespaces exige o registro dos prefixos:
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/">
<item>
<content:encoded>...</content:encoded>
</item>
</rss>
O testador varre o documento em busca de declarações xmlns e registra cada prefixo automaticamente, então //content:encoded simplesmente funciona. Um namespace padrão (um xmlns="..." sem prefixo) não tem prefixo no documento, então o testador o vincula ao prefixo d: selecione os <item> de um feed com namespace padrão usando //d:item. Os namespaces registrados são listados ao lado dos resultados.
O que este testador não avalia
Os navegadores avaliam XPath 1.0, o mesmo dialeto usado pela maioria das stacks de scraping. Recursos do XPath 2.0 em diante, como matches(string, regex), tokenize(string, delimiter), expressões for ... return e operadores de sequência, não fazem parte dele; você os encontra nas toolchains de XSLT 2.0/3.0. XPath 1.0 continua sendo a escolha mais portátil para web scraping.
Dicas de teste
- Comece amplo e vá afunilando. Primeiro
//div, depois//div[@class], depois o valor exato da classe. - Confira as declarações de namespace. A maioria dos “por que meu XPath não retorna nada?” é namespace; olhe a lista de namespaces registrados.
- Atenção às maiúsculas. XML diferencia maiúsculas de minúsculas. O modo HTML converte os nomes para minúsculas.
- Teste string() ao extrair texto.
//p/text()estring(//p)diferem quando há marcação aninhada.
Perguntas frequentes
Não, só XPath. A maioria dos navegadores aceita os dois via document.querySelectorAll (CSS) e document.evaluate (XPath). Use o que for mais claro para a tarefa.
A análise de HTML converte nomes de tags e atributos para minúsculas. Garanta que seu XPath use minúsculas: //div[@class], não //DIV[@CLASS]. Confira também o modo: forçar XML em um HTML malformado falha com erro de análise, enquanto o modo HTML o analisa com tolerância.
Os prefixos declarados no documento são registrados automaticamente para a sua expressão. Um namespace padrão é vinculado ao prefixo d, então //d:item seleciona os elementos <item> de um documento com namespace padrão. Os vínculos ativos são listados junto com os resultados.
Não. O documento e a expressão são avaliados pelo motor XPath do seu próprio navegador e não são enviados ao nosso servidor, armazenados nem adicionados ao endereço da página; eles só permanecem na sessão deste navegador para que a visualização em várias etapas possa mostrar seus resultados.
Ferramentas relacionadas
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Referência de Caracteres HTML
Lista pesquisável de entidades HTML, seus códigos nomeados e numéricos, e uma cópia com um clique para caracteres e símbolos especiais.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Referência de atalhos de teclado
Pesquise atalhos padrão documentados do VS Code, Chrome e Bash com GNU Readline no macOS, Windows e Linux.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Visualizador de Markdown
Escreva Markdown e veja a renderização HTML atualizar ao vivo. Sintaxe com estilo GitHub, incluindo tabelas, listas de tarefas, blocos de código cercados e autolinks.
Ferramenta disponível em outros idiomas
- XPath-Tester [DE]
- เครื่องมือทดสอบ XPath [TH]
- Tester XPath [PL]
- Probador de XPath [ES]
- Penguji XPath [ID]
- Công cụ kiểm tra XPath [VI]
- أداة اختبار XPath [AR]
- XPath テスター [JA]
- Testeur XPath [FR]
- XPath 테스터 [KO]
- XPath-testare [SV]
- XPath-tester [NL]
- Tester XPath [IT]
- Тестер XPath [RU]
- XPath Test Aracı [TR]
- XPath 测试工具 [ZH]
- XPath Tester [EN]