xpath учебник
Начало работы с xpath
Поиск…
замечания
XPath - это язык для адресации частей документа XML.
Он используется в XSLT и является подмножеством XQuery. Библиотеки доступны для большинства других языков программирования.
XPath является международным стандартом со спецификациями, опубликованными W3C:
- XPath 1.0: язык пути XML (XPath), версия 1.0
- XPath 2.0: XML Path Language (XPath) 2.0 (второе издание)
- XPath 3.0: язык пути XML (XPath) 3.0
Версии
Версия | Дата выхода |
---|---|
1,0 | 1999-12-16 |
2,0 | 2007-01-23 |
3.0 | 2014-04-08 |
3.1 (Рекомендация кандидата W3C) | 2015-12-17 |
Пример XML (без пространств имен)
Вот пример XML-образца, в отношении которого можно написать XPaths:
<r>
<e a="1"/>
<f a="2" b="1">Text 1</f>
<f/>
<g>
<i c="2">Text 2</i>
Text 3
<j>Text 4</j>
</g>
</r>
Выберите текст
Для образца XML (без пространств имен):
Этот XPath,
/r/f/text()
выберет текстовый узел с этим строковым значением:
"Text 1"
И этот XPath,
string(/r/f)
вернет строковое значение f
, которое также:
"Text 1"
Выберите элемент
Для образца XML (без пространств имен):
Этот XPath,
/r/e
выберет этот элемент:
<e a="1"/>
Общие операции HTML
Если входной HTML DOM
<html>
<body>
<a>link</a>
<div class='container' id='divone'>
<p class='common' id='enclosedone'>Element One</p>
<p class='common' id='enclosedtwo'>Element Two</p>
</div>
</body>
</html>
Найти элемент с определенным идентификатором на всей странице
//*[@id='divone'] # Returns <div class='container' id='divone'>
Найти элемент с определенным идентификатором в определенном пути
/html/body/div/p[@id='enclosedone'] # Returns <p class='common' id='enclosedone'>Element One</p>
Выберите элемент с определенным идентификатором и классом
//p[@id='enclosedone' and @class='common'] # Returns <p class='common' id='enclosedone'>Element One</p>
Выберите текст определенного элемента
//*[@id='enclosedone']/text() # Returns Element One
Тестирование Xpaths в консоли браузера
Быстрый способ протестировать ваш xpath находится в консоли разработчика.
Формат
$x('//insert xpath here')
$ - указывает, что это селектор.
x - указывает, что он использует xpaths
Пример:
$x("//button[text() ='Submit']")
Когда эта команда будет введена, она вернет все вхождения элементов, которые являются кнопками с текстом, равным Submit.