XPath, abreviatura de XML Path Language, é uma linguagem de consulta utilizada para navegar num documento XML. Foi introduzida pela primeira vez em 1999 como uma forma de fornecer um método padrão para aceder a elementos dentro de um documento XML. A linguagem baseia-se no conceito de «caminho», que é utilizado para selecionar elementos específicos com base na sua posição dentro do documento.
Uma das principais características do XPath é a utilização da notação de caminho. Esta notação permite selecionar elementos com base na sua localização na árvore do documento. Por exemplo, num documento HTML, o caminho «html/body/p» selecionaria todos os elementos p que são filhos diretos do elemento body, que por sua vez é um filho direto do elemento html.
A sintaxe do XPath é bastante simples:
//tagname[@attribute='value']
Onde «tagname» é o tipo de elemento HTML que procura (por exemplo, div, a, p), «attribute» é uma propriedade do elemento HTML pretendido pela qual o nosso localizador realiza a pesquisa (por exemplo, class) e «value» é o valor específico que pretende encontrar
Os seletores CSS, abreviatura de Cascading Style Sheets, são utilizados para selecionar elementos com base nas suas propriedades, tais como class, id e atributos. São mais fáceis de ler e compreender do que o XPath, mas têm uma capacidade limitada de navegar pelo documento. Os seletores CSS são utilizados principalmente para estilização e layout, mas também podem ser utilizados para extrair informações de uma página web:
<html> <body> <p class="highlight">Hello, world!</p> </body> </html>
|
Para selecionar o texto «Hello, world!» utilizando seletores CSS, teremos de utilizar Javascript:
let p_tag = document.querySelector(“p.highlight”)
let p_text = p_tag.innerText
O XPath, por outro lado, foi especificamente concebido para fornecer uma linguagem de consulta para documentos XML e inclui uma vasta gama de funções integradas. Estas funções podem ser utilizadas para realizar cálculos e extrair informações específicas dos elementos. Por exemplo, com a função text() do XPath, pode selecionar diretamente o valor do texto de um elemento:
<html> <body> <p>Hello, world!</p> </body> </html>
Para selecionar o texto "Hello, world!" utilizando a função text() no XPath, a expressão seria:
/html/body/p/text()