--- obj: concept wiki: https://en.wikipedia.org/wiki/XPath --- # XPath XPath ([XML](XML.md) Path Language) is a powerful query language used to navigate and select elements from [XML](XML.md) documents. It is commonly employed in web scraping, [XML](XML.md) processing, and testing scenarios. ## XPath Syntax XPath expressions use a path notation to identify and navigate [XML](XML.md) elements. The basic syntax includes: - **Node Selection:** `/` is used to select the root node. `element` selects all child elements of the current node with the specified name: `/root/element` - **Wildcards:** The `*` symbol is used as a wildcard for any element. `/root/*` - **Predicates:** Square brackets `[]` are used to specify conditions for node selection. `/root/element[@attribute='value']` ### Absolute XPath Absolute XPath provides the complete path from the root node to the desired element. It starts with a single forward slash `/`. `/html/body/div[1]/p[2]` ### Relative XPath Relative XPath selects elements based on their relationship to other elements. It does not start from the root, allowing for more flexible and adaptable expressions. `//div[@class='example']/a` ### XPath Functions XPath provides various functions for more complex queries. Examples include `text()`, `contains()`, and `position()`. `//h2[contains(text(),'XPath')]` Some functions include: - `text()`: The `text()` function is used to select the text content of an element. - `contains(element, value)`: The `contains()` function is used to check if a string contains a specific substring. - `starts-with(element, value)`: The `starts-with()` function is used to check if a string starts with a specified prefix. - `concat(elements...)`: The `concat()` function concatenates two or more strings. - `not(element)`: The `not()` function negates a given expression. - `position()`: The `position()` function returns the position of the current node in the selection. - `last()`: The `last()` function returns the position of the last node in the selection.