Testador de XPath
XPath Tester
Avalia um XPath ou seletor CSS contra XML ou HTML e lista cada nó encontrado.
Executa uma expressão XPath 1.0 ou um seletor CSS contra um documento XML ou HTML e mostra cada nó que casou, com o caminho absoluto até cada um. A avaliação é a do próprio navegador, então o que você vê aqui é o que `document.evaluate` vai fazer no seu código.
Expressão XPath 1.0
Documento
Solte um arquivo
Lido só nesta aba.
Resultados
Os resultados aparecem aqui enquanto você digita.
Como ele roda
- · A avaliação roda sobre o
document.evaluate(XPath 1.0) e oquerySelectorAlldo próprio navegador. A tipagem do resultado — conjunto de nós, número, string, booleano —, o caminho absoluto de cada nó e o tratamento dos prefixos de namespace são desta ferramenta. - · O modo XML lê de forma estrita e aponta o que está errado; o modo HTML lê com folga, do jeito que um navegador lê. O HTML normaliza os nomes de tag para minúsculas, então
//DIVnão serve e//divserve. - · Num documento com namespace padrão (
xmlns="…"), um nome sem prefixo não casa com nada: é a regra do XPath 1.0. Use o prefixo_como em//_:item. - · As funções de XPath 2.0 e 3.x (
matches,ends-with,lower-case) não existem em nenhum navegador.contains·starts-with·translate·normalize-spaceé o que a 1.0 te dá. - · O documento é lido só nesta aba e não é enviado para lugar nenhum.
Para JSON, o testador de JSONPath ou o playground do jq é a ferramenta certa.
Como usar
Escolha como o documento é lido
O modo XML é estrito e relata o que está malformado. O modo HTML é tolerante como um navegador é, e normaliza os nomes das tags para minúsculas.
Escreva a expressão
XPath ou um seletor CSS: a chave alterna entre os dois. Os botões de exemplo cobrem atributos, predicados, namespaces, nós de comentário e as funções que devolvem escalares.
Leia o tipo do resultado primeiro
XPath devolve quatro tipos de coisa, e só um deles é um conjunto de nós. `count()`, `string()` e `boolean()` te dão um valor único, mostrado sozinho em vez de como uma lista de correspondências vazia.
Perguntas frequentes
Minha expressão não casa com nada e o documento parece certo.
Quase com certeza um namespace padrão. Se o documento tem `xmlns="…"` na raiz, o XPath 1.0 diz que um nome sem prefixo não casa com nada: você precisa vincular um prefixo. Aqui esse prefixo é `_`, então `//item` vira `//_:item`.
Por que `matches()` não existe?
Porque os navegadores implementam só XPath 1.0. `matches`, `ends-with`, `lower-case` e o resto chegaram no 2.0, e nenhum navegador o tem. O kit do 1.0 é `contains`, `starts-with`, `translate` e `normalize-space`.
XPath ou CSS: qual devo usar?
CSS é mais curto e basta para a maior parte do scraping. XPath consegue subir (`..`, `ancestor::`), casar por conteúdo de texto e devolver números e strings, nada do que um seletor consegue fazer. Esta página executa os dois para você compará-los sobre o mesmo documento.
Ele busca uma página para mim?
Não. Você cola ou solta o documento e ele é lido nesta aba. Buscar precisaria de um proxy — o navegador não deixa uma página ler outra origem — e esse proxy veria tudo o que você testou.
Pode receber de
Formatador e validador de XML
XML Formatter & Validator
Indenta XML e informa a linha e a coluna da primeira falha de boa formação.
JSON ⇄ XML conversor
JSON ⇄ XML
Converte entre JSON e XML com tratamento configurável de atributos, arrays e nós de texto.
Testador de JSONPath
JSONPath Tester
Executa uma expressão JSONPath contra um documento e destaca os nós encontrados enquanto você digita.
Formatador e validador de JSON
JSON Formatter & Validator
Formata, minifica e valida JSON, apontando a linha e a coluna exatas de um erro de sintaxe.
Em seguida
Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.
Formatador e minificador de HTML
HTML Beautifier & Minifier
Formata ou minifica HTML, preservando os elementos em linha e, opcionalmente, juntando os espaços em branco.
Testador de JSONPath
JSONPath Tester
Executa uma expressão JSONPath contra um documento e destaca os nós encontrados enquanto você digita.
JSON ⇄ XML conversor
JSON ⇄ XML
Converte entre JSON e XML com tratamento configurável de atributos, arrays e nós de texto.
Formatador e validador de XML
XML Formatter & Validator
Indenta XML e informa a linha e a coluna da primeira falha de boa formação.
Codificar e decodificar Base64
Base64 Encoder & Decoder
Codifica e decodifica Base64 e Base64URL para texto ou arquivos, tratando UTF-8 corretamente.
curl para código
curl to Code
Converte um comando curl em fetch, axios, Python requests, Go, PHP ou PowerShell.