How to select elements by text in XPath?

To select elements by text using XPath we can either match the text() value or use it in a contains() function.
For example, to select <a>websites</a> we would use //a[contains(text(), "website")] selector. See this interactive example:

<html> <a>ignore</a> <a>website</a> <a>WEBSITE</a> </html>

Note that contains() method is case sensitive.
For case-insensitive selections we can use matches (sometimes called re:test()) function:

<html> <a>ignore</a> <a>website</a> <a>WEBSITE</a> </html>
Question tagged: XPath, Data Parsing

Related Posts

How to Parse XML

In this article, we'll explain about XML parsing. We'll start by defining XML files, their format and how to navigate them for data extraction.

Ultimate XPath Cheatsheet for HTML Parsing in Web Scraping

Ultimate companion for HTML parsing using XPath selectors. This cheatsheet contains all syntax explanations with interactive examples.

Web Scraping With Ruby

Introduction to web scraping with Ruby. How to handle http connections, parse html files for data, best practices, tips and an example project.