Skip to main content
CheckTown
Ferramentas dev

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 padrão 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 posição, nome ou valor.

XPath não e uma tecnologia autonoma -- esta integrado em outros padrões 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 expressões XPath para web scraping e testes automatizados.

Como funcionam as consultas XPath

Uma expressão XPath navega pela arvore do documento usando eixos (direções), testes de nos (filtros) e predicados (condições). 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 condições: //book[price>30] seleciona livros com preço acima de 30, enquanto //div[@class='main'] seleciona divs com um atributo de classe especifico
  • Funções e operadores -- XPath fornece funções integradas como contains(), starts-with(), normalize-space() e count() para manipulação de strings, comparação 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 preços de produtos, titulos de artigos ou links de paginas web usando expressões XPath em ferramentas como Scrapy, Puppeteer ou consoles de desenvolvedor do navegador
  • Configuração XML -- consulte e valide ficheiros de configuração complexos como Maven pom.xml, manifestos Android ou contextos Spring XML para encontrar configurações ou dependências especificas
  • Transformações XSLT -- selecione nos para transformação em folhas de estilo XSLT, que dependem inteiramente de expressões 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 seleção 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 (não HTML). XPath também 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, sequências, expressões regulares), expressões condicionais (if/then/else), expressões quantificadas (some/every) e expressões 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 não correspondera a elementos num namespace mesmo que o nome local seja 'book'. Algumas ferramentas suportam local-name() como alternativa: //*[local-name()='book'].

Ferramentas relacionadas