XPath é uma tecnologia que especifica e extrai de forma precisa e eficiente as informações necessárias de dados de estruturas em árvore, como HTML e XML.
Visão Geral do XPath
XPath é uma linguagem usada para especificar e extrair elementos e atributos específicos em uma árvore de documentos XML ou HTML. Como as páginas web geralmente são compostas por HTML, o XPath é amplamente utilizado em vários cenários, como web scraping, recuperação de dados e busca de dados XML.
O uso típico é o seguinte:
- Extração de Dados em Web Crawlers: O XPath é usado para buscar automaticamente dados específicos, como informações de produtos em sites de comércio eletrônico ou títulos de artigos em sites de notícias.
- Busca e Processamento de Dados XML: Em sistemas empresariais e processamento de links de dados, os dados são frequentemente trocados em formato XML. Ao usar o XPath, você pode extrair eficientemente as informações necessárias de grandes quantidades de dados XML.
- Respostas de API de Análise (Formato XML): Ao usar APIs baseadas em XML, como o SOAP, o XPath é usado para analisar dados de resposta. Isso permite obter rapidamente códigos de status específicos e dados de resultados, melhorando a precisão da integração do sistema e do processamento automatizado.
Recomendação de ferramentas
No processo de aprendizado e uso do XPath, ferramentas comuns incluem:
Ferramentas para Desenvolvedores do Chrome: Uma ferramenta poderosa que vem com o navegador Chrome, você pode chamá-la pressionando a tecla F12. No painel "Elements", você pode localizar rapidamente elementos HTML em uma página web passando o mouse e clicando, e ao clicar com o botão direito em um elemento pode copiar diretamente a expressão XPath para facilitar a verificação e os testes. Por exemplo, ao analisar uma página de produto de comércio eletrônico, você pode usar ferramentas de desenvolvimento do Chrome para obter rapidamente XPath para nomes de produtos, preços e outros elementos. Ferramentas para Desenvolvedores do Firefox: Também vem com o navegador, semelhante às Ferramentas para Desenvolvedores do Chrome. Também permite localizar facilmente elementos na sua página, além de visualizar e testar expressões XPath. Essa é uma boa opção para desenvolvedores acostumados a usar o navegador Firefox. Ferramentas online de teste XPath: Ferramentas online como o "XPath Tester" podem ser usadas sem instalação e podem ser usadas abrindo uma página web. Basta colar o conteúdo de um documento XML ou HTML, inserir uma expressão XPath e ver os resultados correspondentes em tempo real. Essa ferramenta é especialmente adequada para iniciantes começarem rapidamente e fazerem exercícios simples de XPath. Plugin XPath Helper: Pegando o Chrome Browser como exemplo, após instalar o plugin XPath Helper, ele adiciona uma janela flutuante à interface do navegador ao navegar na web, exibindo o caminho XPath do elemento atual sobre o mouse-over, e você pode editar e testar expressões XPath diretamente na janela, melhorando muito a eficiência do desenvolvimento.
Sintaxe Abstrata do XPath
Selecione um nó
O XPath usa expressões de caminho para selecionar nós em um documento XML. Os nós são selecionados seguindo um caminho ou passo. As expressões de caminho mais úteis estão listadas abaixo:
expressão | descrição | | Nome de nó | Seleciona todos os nós filhos desse nó. | | / | Escolha do nó raiz (pegue o nó filho). | | // | Seleciona nós no documento a partir do nó atual da seleção correspondente, independentemente de sua localização (pegue nós descendentes). | | . | Escolha o nó atual. | | .. | Escolha o nó pai do nó atual. | | @ | Escolha um atributo. |
Na tabela abaixo, listamos algumas expressões de caminho junto com os resultados das expressões:
Expressões de caminho | resultado | | livraria | Escolha todos os nós chamados livraria. | | /bookstore | Escolha a livraria de elementos raizes. Nota: Se o caminho começa com uma barra para frente ( / ), então esse caminho sempre representa um caminho absoluto para um elemento! | | Livraria/Livro | Seleciona todos os elementos do livro que são elementos infantis da livraria. | | //book | Seleciona todos os subelementos do livro, independentemente de sua posição no documento. | | livraria//livro | Selecione todos os elementos do livro que sejam descendentes do elemento da livraria, independentemente de onde estejam localizados na livraria. | | @lang | Escolha todas as propriedades chamadas lang. |
Predicados
Um predicado é usado para encontrar um nó específico ou um nó contendo um valor especificado. O predicado está embutido entre colchetes. Na tabela abaixo, listamos algumas expressões de caminho com predicados e os resultados das expressões:
Expressões de caminho | resultado | | /bookstore/book[1] | Escolha o primeiro elemento de livro que faz parte do elemento criança da livraria. | | /bookstore/book[last()] | Escolhe o último elemento do livro que faz parte do subelemento da livraria. | | /bookstore/book[last()-1] | Escolhe o penúltimo elemento do livro que pertence ao elemento criança da livraria. | | /bookstore/book[position()<3] | Escolha os dois primeiros elementos do livro que são elementos filhos do elemento da livraria. | | Título[@lang] | Seleciona todos os elementos de título que possuem uma propriedade chamada lang. | | título[@lang='eng'] | Seleciona todos os elementos do título que possuem um atributo lang com valor eng. | | /bookstore/book[price>35.00] | Seleciona todos os elementos do livro do elemento da livraria, e o valor do elemento de preço deve ser maior que 35,00. | | /bookstore/book[price>35.00]//title | Seleciona todos os elementos de título do elemento livro no elemento livraria, e o valor do elemento preço deve ser maior que 35,00. |
Selecione um nó desconhecido
Os coringas do XPath podem ser usados para captar elementos XML desconhecidos.
Curinga | descrição | | * | Corresponde a qualquer nó de elemento. | | @* | Corresponde a qualquer nó de atributo. | | node() | Combina com qualquer tipo de nó. |
Na tabela abaixo, listamos algumas expressões de caminho e os resultados dessas expressões:
Expressões de caminho | resultado | | /bookstore/* | Escolhe todos os elementos infantis do elemento livraria. | | //* | Seleciona todos os elementos do documento. | | título[@*] | Seleciona todos os elementos do título com atributos. |
Escolha vários caminhos
Usando "|" na expressão do caminho Operadores, vocês podem escolher vários caminhos.
Na tabela abaixo, listamos algumas expressões de caminho e os resultados dessas expressões:
Expressões de caminho | resultado | | //book/title | //book/price | Escolhe todos os elementos de título e preço do elemento do livro. | | título | preço | Escolha todos os elementos de título e preço no documento. | | /bookstore/book/title | //price | Seleciona todos os elementos de título do elemento livro que pertencem ao elemento livraria, e todos os elementos de preço no documento. |
Função XPath
A seguir está uma lista comentada de adições específicas do XPath ao XPath por funções principais do XPath e XSLT, incluindo descrições, sintaxe, listas de parâmetros, tipos de resultados e fontes nas recomendações correspondentes do W3C.
- Booleano()
- teto()
- choose()
- concat()
- Contém()
- contar()
- atual() específico para XSLT
- document() específico para XSLT
- element-available()
- false()
- floor()
- format-number() específico do XSLT
- função-disponível()
- generate-id() específico para XSLT
- id()
- chave() específico XSLT
- lang()
- last()
- Nome-local()
- Nome()
- namespace-uri()
- Espaço de normalização()
- not()
- número()
- posição()
- Round()
- começa-com()
- string()
- comprimento da corda()
- substring()
- substring-after()
- substring-antes()
- sum()
- System-property() específico do XSLT
- translate()
- true()
- unparsed-entity-url() específico de XSLT
Provas práticas
Abra o Chrome e obtenha o conteúdo de texto de todos os links da aba A com o seguinte comando:
Como mostrado abaixo:
Referência:O login do hiperlink está visível. |