XPath (XML Path Language) é uma linguagem de consulta para selecionar nós e valores em documentos XML. No Apidog, o XPath é utilizado para extrair dados de respostas de APIs em XML, validar estruturas XML e criar asserções para APIs baseadas em XML.Pode utilizar XPath para selecionar nós ou conjuntos de nós num documento XML seguindo um caminho ou uma série de passos através da hierarquia do documento.
O XPath permite-lhe selecionar nós ou conjuntos de nós num documento XML seguindo um caminho ou passos. Abaixo estão algumas das expressões de caminho mais comuns:
Expressão
Descrição
nodename
Seleciona todos os filhos deste nó
/
Seleciona a partir do nó raiz
//
Seleciona nós no documento a partir do nó atual que corresponde à seleção, independentemente das suas posições
A tabela seguinte mostra expressões de caminho e os respetivos resultados com base no XML de exemplo:
Expressão de Caminho
Resultado
bookstore
Seleciona todos os filhos do elemento bookstore
/bookstore
Seleciona o elemento raiz bookstore. Se o caminho começar com uma barra ( / ), então este caminho representa sempre um caminho absoluto para um elemento
bookstore/book
Seleciona todos os elementos book que são filhos de bookstore
//book
Seleciona todos os elementos book independentemente da sua posição no documento
bookstore//book
Seleciona todos os elementos book que são filhos de elementos bookstore, independentemente de onde estejam localizados sob bookstore
//@lang
Seleciona todos os atributos denominados lang
Caminhos Absolutos vs Relativos
Os caminhos que começam com / são absolutos (a partir da raiz), enquanto os caminhos sem / são relativos ao nó atual.
Pode utilizar predicados para encontrar um nó específico ou um nó que contenha um valor especificado. Os predicados são delimitados por parênteses retos e permitem uma filtragem poderosa.
Seleciona o primeiro elemento book dos elementos filhos de bookstore
/bookstore/book[last()]
Seleciona o último elemento book dos elementos filhos de bookstore
/bookstore/book[last()-1]
Seleciona o penúltimo elemento book dos elementos filhos de bookstore
/bookstore/book[position()<3]
Seleciona os dois primeiros elementos book dos elementos filhos de bookstore
//title[@lang]
Seleciona todos os elementos title que têm um atributo denominado lang
//title[@lang='eng']
Seleciona todos os elementos title que têm um atributo lang com o valor eng
/bookstore/book[price>35.00]
Seleciona todos os elementos book de bookstore com o valor do elemento price superior a 35.00
/bookstore/book[price>35.00]//title
Seleciona todos os elementos title do elemento book em bookstore com o elemento price superior a 35.00
Indexação de Predicados
O XPath utiliza indexação baseada em 1 para predicados, ao contrário do JSONPath, que utiliza indexação baseada em 0. O primeiro elemento é [1], não [0].
Seleciona todos os elementos filhos do elemento bookstore
//*
Seleciona todos os elementos no documento
//title[@*]
Seleciona todos os elementos title com atributos
Utilização de Caracteres Universais
Os caracteres universais são úteis ao trabalhar com estruturas XML dinâmicas ou quando pretende selecionar todos os elementos independentemente dos seus nomes.
Validação de Respostas XML: Extrair valores específicos de respostas de APIs em XML para verificar a correção
Teste de APIs SOAP: Analisar e validar respostas SOAP
Variáveis Dinâmicas: Armazenar valores XML extraídos para utilização em pedidos subsequentes
Asserções de Teste: Criar asserções com base em dados de respostas XML
Extração de Dados: Obter campos específicos de estruturas XML aninhadas complexas
XML vs JSON
Embora JSON seja mais comum em APIs modernas, muitos sistemas legados e serviços baseados em SOAP ainda utilizam XML. O XPath é essencial para testar estas APIs.