Ferramentas XML

testador de XPathconfira a consulta no documento real

Execute pelo botão ou com Ctrl/Cmd+Enter. Ao mudar entradas, vínculos ou visualização, avalie novamente.

testador de XPath

Entrada XML

Resultado

O XML e as consultas são processados neste navegador; o documento não é enviado a um servidor.

Use um prefixo ASCII, como {"b":"urn:books"}; ele pode ser diferente do prefixo original.

XPath 1.0; execução manual com Ctrl/Cmd+Enter. Escalares JSON usam strings para preservar NaN e Infinity.

Resultado desatualizado; avalie novamente para exportar.

Um testador de XPath ajuda quando uma expressão funciona no exemplo, mas não encontra nada no XML real. O namespace padrão, uma condição de atributo ou a profundidade do elemento podem explicar a diferença.

Você pode testar XPath sem formatar o documento antes. A expressão XPath usa o texto original, permitindo comparar uma consulta XML sem apagar espaços que influenciam o conteúdo selecionado.

Por que usar este testador de XPath?

Compare os ramos selecionados

Este testador de XPath mostra os mesmos títulos como fragmentos XML, valores de texto ou caminhos absolutos. Assim você distingue o elemento selecionado do conteúdo que deseja extrair, sem alterar a fonte.

Dois ramos de título selecionados em uma árvore XML são extraídos como dois resultados.

Associe os nomes pela URI

Vincule b a urn:books e use //b:book, mesmo que o documento tenha outro prefixo. Elementos com o mesmo nome local em namespaces diferentes continuam separados.

Nós de mesmo nome em dois namespaces; apenas o grupo vinculado é selecionado.

Três detalhes que mudam a consulta

01

Dê um alias ao namespace padrão

Se houver xmlns="urn:books", informe {"b":"urn:books"} e use //b:book. Sem prefixo, //book seleciona apenas elementos sem namespace.

02

Diferencie texto de text()

A visualização de texto usa o valor completo de cada elemento, incluindo descendentes. //title/text() seleciona somente os nós de texto diretos; conteúdo misto pode gerar resultados diferentes.

03

Avalie novamente antes de exportar

Mudar XML, expressão, vínculos ou visualização desativa a exportação. Execute de novo. A tela acrescenta 50 resultados por vez; a cópia e o download incluem todos os resultados da execução bem-sucedida.

Selecionar, extrair e localizar

Quatro tipos de resultado

Além de conjuntos de nós, são aceitos string(//title), count(//book) e boolean(//missing). O JSON registra o tipo e armazena os valores como strings, preservando NaN e Infinity em vez de transformá-los em null.

Atributos e condições

//book[@id="b1"] filtra elementos, //@id extrai atributos e //book[price>15]/title aplica uma comparação numérica. Nenhuma correspondência ainda é sucesso, com count 0 e um array values vazio.

Caminhos verificáveis

Posições distinguem irmãos de mesmo nome. Elementos com namespace usam local-name() e namespace-uri(), sem depender do prefixo configurado. Os caminhos correspondem ao documento atual; alterações na estrutura podem mudar as posições.

Versões e limites

Somente XPath 1.0
O testador de XPath usa o mecanismo do navegador. XPath 2.0/3.1, matches(), ends-with(), variáveis e XQuery ficam fora do escopo. O eixo namespace:: não tem resultados garantidos entre navegadores.
XML estrito, sem reparo
Somente XML 1.0 bem formado é aceito. DTDs e entidades externas são rejeitadas; declarações de codificação devem usar UTF-8. Tags HTML não são completadas e espaços do conteúdo não são removidos. Texto adjacente e CDATA são unidos para o modelo XPath. A serialização pode trocar os marcadores CDATA por texto escapado, preservando os caracteres.
Prefixos explícitos
O objeto JSON associa prefixos ASCII a URIs não vazias. Prefixo vazio e xmlns são proibidos; xml usa sua URI padrão. Um prefixo não ASCII no documento pode ser consultado por um alias ASCII da mesma URI.
Execução síncrona com limites
Máximos: 100.000 caracteres de entrada, 2.000 nós XML incluindo atributos e texto, profundidade 100, expressão com 2.000 caracteres, 1.000 correspondências e 2.000.000 de caracteres de saída. Exceder um limite invalida o resultado inteiro. A API síncrona não tem timeout rígido; consultas complexas podem pausar a aba brevemente.
Entrada e recuperação
A entrada é por texto colado, sem importar URL, enviar arquivo, salvar compartilhamentos ou validar esquemas. Limpar e Exemplo mostram uma prévia. Aplicar substitui XML e opções; Desfazer recupera uma vez entradas e resultado.

Dúvidas sobre o testador de XPath

Como escrever uma expressão XPath para XML com vários namespaces?

Vincule cada URI a um prefixo no JSON, por exemplo {"a":"urn:one","b":"urn:two"}, e use os prefixos na expressão. Eles não precisam coincidir com os prefixos do arquivo, mas as URIs devem ser exatas.

Como obter uma tag a dentro de DIV usando XPath?

Em XML bem formado, //DIV/a seleciona filhos a de DIV e //DIV//a alcança descendentes. A caixa importa. Esta página não corrige HTML: feche as tags e escape entidades, ou use uma ferramenta própria para HTML.

Como retornar um campo específico do XML?

Selecione o caminho do campo, como /library/book/title. Para obter seu conteúdo, escolha valores de texto e execute novamente. string(//title) retorna apenas o valor do primeiro título, não uma lista de todos eles.

Como extrair as tags filhas de um XML?

Use / para filhos diretos, como /library/book, ou // para descendentes. Para extrair texto de cada elemento, selecione os nós e escolha a visualização de texto; text() sozinho não inclui texto de elementos internos.

Há suporte a XPath 2.0 ou 3.0?

Não. O mecanismo real é XPath 1.0 do navegador. Funções como matches() exigem outro mecanismo; uma expressão não suportada não prova que o XML esteja errado.

Ficou alguma dúvida?

Confira a próxima expressão

O testador de XPath deixa claros o tipo e os vínculos de namespace. Guarde a expressão que funcionou junto com o XML de exemplo para reproduzir diferenças futuras.