XPath, abreviatura de XML Path Language, es un lenguaje de consulta que se utiliza para navegar por un documento XML. Se introdujo por primera vez en 1999 como una forma de proporcionar un método estándar para acceder a elementos dentro de un documento XML. El lenguaje se basa en el concepto de «ruta», que se utiliza para seleccionar elementos específicos en función de su posición dentro del documento.
Una de las características clave de XPath es el uso de la notación de ruta. Esta notación te permite seleccionar elementos en función de su ubicación en el árbol del documento. Por ejemplo, en un documento HTML, la ruta «html/body/p» seleccionaría todos los elementos p que son hijos directos del elemento body, el cual, a su vez, es un hijo directo del elemento html.
La sintaxis de XPath es bastante sencilla:
//tagname[@attribute='value']
Donde «tagname» es el tipo de elemento HTML que se busca (p. ej., div, a, p), «attribute» es una propiedad del elemento HTML deseado mediante la cual nuestro localizador realiza la búsqueda (p. ej., class) y «value» es el valor específico que se desea encontrar
Los selectores CSS, abreviatura de Cascading Style Sheets (hojas de estilo en cascada), se utilizan para seleccionar elementos en función de sus propiedades, como class, id y atributos. Son más fáciles de leer y comprender que XPath, pero tienen una capacidad limitada para navegar por el documento. Los selectores CSS se utilizan principalmente para el estilo y el diseño, pero también se pueden usar para extraer información de una página web:
<html> <body> <p class="highlight">Hello, world!</p> </body> </html>
|
Para seleccionar el texto «¡Hola, mundo!» utilizando selectores CSS, tendremos que usar JavaScript:
let p_tag = document.querySelector(“p.highlight”)
let p_text = p_tag.innerText
XPath, por otro lado, fue diseñado específicamente para proporcionar un lenguaje de consulta para documentos XML y cuenta con una amplia gama de funciones integradas. Estas funciones se pueden utilizar para realizar cálculos y extraer información específica de los elementos. Por ejemplo, con la función text() de XPath, puedes seleccionar directamente el valor de texto de un elemento:
<html> <body> <p>Hello, world!</p> </body> </html>
Para seleccionar el texto «Hello, world!» utilizando la función text() en XPath, la expresión sería:
/html/body/p/text()