Para buscar cadenas de caracteres especificas dentro de un texto.
starts-with(.“Texto a buscar”): Empezar con, el punto hace referencia al nodo actual.
$x('//small[@class="author"and starts-with(.,"A")]/text()').map(x => x.wholeText)
#Devuelve (4) ["Albert Einstein", "Albert Einstein", "Albert Einstein", "André Gide"]
Aunque no funciona en el navegador, ends-with se escribe igual que starts-with y en python sí funciona.
$x('//small[@class="author" and matches(.,"A.*n")]/text()'
).map(x=> x.wholeText)
contains (., “Texto a buscar”) : Sirve para llamar por el texto contenido en.
$x('//small[@class="author"and contains(., "g")]/text()').map(x => x.wholeText)
# Devuelve ["J.K. Rowling"]
Con matches, aunque tampoco es soportada por el navegador, realiza una busqueda en el texto de un nodo que coincida con cierta expresión regular en este caso matches(.,“A.*n")en este nodo, busque autores que empiecen con A y terminen con n
$x('//small[@class="author" and matches(.,"A.*n")]/text()'
).map(x=> x.wholeText)
Nota: Debido a las versiones del lenguaje Xpath en los navegadoreslas funciones end-with y matches no están disponibles, pero una ve en código python corren sin problemas.