How to select elements by ID in XPath?

To select elements by element ID using XPath we can match the @id attribute with the = operator or the contains() function.

For example, to select <a id="home"></a> element we could use //a[@id="home"] or //a[contains(@id, "home")] selectors as seen in these interactive examples:

<html> <a id="ignore"></a> <a id="home">website</a> <a id="ignore2">website 2</a> </html>

For dynamic IDs we can use contains() to match elements by partial ID:

<html> <a id="ignore"></a> <a id="home-231">website</a> <a id="ignore2">website 2</a> </html>

Note that by CSS design there should only be one element of a given ID on the page which makes selecting elements by ID a very fast and reliable method.

Question tagged: XPath, Popular

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.