Skip to main content
CheckTown
Dev Tools

XPath Tester: consultar documentos XML com XPath

Publicado 6 min de leitura
Neste artigo

O que e XPath?

XPath (XML Path Language) e uma linguagem de consulta padrao W3C para selecionar nos de documentos XML. Utiliza uma sintaxe semelhante a caminhos para navegar pela estrutura hierarquica de uma arvore XML, selecionando elementos, atributos e nos de texto com base na sua posicao, nome ou valor.

XPath nao e uma tecnologia autonoma -- esta integrado em outros padroes como XSLT, XQuery e APIs DOM. Todos os navegadores modernos suportam XPath para consultar documentos HTML, e ferramentas como Selenium, Scrapy e lxml utilizam extensivamente expressoes XPath para web scraping e testes automatizados.

Como funcionam as consultas XPath

Uma expressao XPath navega pela arvore do documento usando eixos (direcoes), testes de nos (filtros) e predicados (condicoes). Compreender estes tres conceitos permite construir qualquer consulta.

  • Eixos e caminhos -- / seleciona a partir da raiz, // seleciona descendentes em qualquer lugar, .. sobe para o pai, e eixos nomeados como following-sibling:: navegam relativamente ao no atual
  • Predicados e filtros -- colchetes [] adicionam condicoes: //book[price>30] seleciona livros com preco acima de 30, enquanto //div[@class='main'] seleciona divs com um atributo de classe especifico
  • Funcoes e operadores -- XPath fornece funcoes integradas como contains(), starts-with(), normalize-space() e count() para manipulacao de strings, comparacao e contagem de nos

Experimente gratuitamente — sem cadastro

Testar uma consulta XPath →

Quando usar XPath

XPath e essencial sempre que precisar extrair dados especificos de documentos XML ou HTML programaticamente.

  • Web scraping -- extraia precos de produtos, titulos de artigos ou links de paginas web usando expressoes XPath em ferramentas como Scrapy, Puppeteer ou consoles de desenvolvedor do navegador
  • Configuracao XML -- consulte e valide ficheiros de configuracao complexos como Maven pom.xml, manifestos Android ou contextos Spring XML para encontrar configuracoes ou dependencias especificas
  • Transformacoes XSLT -- selecione nos para transformacao em folhas de estilo XSLT, que dependem inteiramente de expressoes XPath para corresponder e processar elementos XML em diferentes formatos de saida

Perguntas frequentes

Quando devo usar XPath em vez de seletores CSS?

Seletores CSS sao mais simples e rapidos para selecao basica de elementos por tag, classe ou ID. Escolha XPath quando precisar selecionar por conteudo de texto (//a[contains(text(),'Entrar')]), navegar para nos pai, usar predicados complexos ou trabalhar com documentos XML (nao HTML). XPath tambem e necessario em contextos XSLT e XQuery.

O que mudou entre XPath 1.0 e 2.0?

XPath 2.0 adicionou um sistema de tipos mais rico (datas, sequencias, expressoes regulares), expressoes condicionais (if/then/else), expressoes quantificadas (some/every) e expressoes de intervalo. No entanto, a maioria dos navegadores e ferramentas de scraping so suportam XPath 1.0. Use recursos do XPath 2.0 em ferramentas do lado do servidor como Saxon ou ao trabalhar com XSLT 2.0.

Como lidar com namespaces XML no XPath?

Elementos com namespace requerem um mapeamento de prefixo. Na maioria das APIs, regista um prefixo de namespace (ex. ns='http://example.com') e depois consulta usando esse prefixo: //ns:book/ns:title. Sem registar o namespace, //book nao correspondera a elementos num namespace mesmo que o nome local seja 'book'. Algumas ferramentas suportam local-name() como alternativa: //*[local-name()='book'].

Ferramentas relacionadas