Какие знаешь оси в XPath
1️⃣ Как кратко ответить
В XPath существуют следующие основные оси: child, parent, ancestor, ancestor-or-self, descendant, descendant-or-self, following, following-sibling, preceding, preceding-sibling, self, attribute, namespace. Каждая ось определяет направление поиска узлов относительно текущего узла в XML-документе.
2️⃣ Подробное объяснение темы
XPath (XML Path Language) — это язык запросов, который используется для навигации по элементам и атрибутам в XML-документах. Оси в XPath определяют направление, в котором происходит поиск узлов относительно текущего узла. Это позволяет точно указать, какие узлы должны быть выбраны в результате запроса.
-
child: Эта ось выбирает все дочерние узлы текущего узла. Например, если текущий узел — это элемент<book>, тоchild::titleвыберет все<title>элементы, которые являются непосредственными дочерними узлами<book>.<book> <title>XML Guide</title> <author>John Doe</author> </book>XPath:
child::titleвыберет узел<title>. -
parent: Эта ось выбирает родительский узел текущего узла. Если текущий узел — это<title>, тоparent::bookвыберет его родительский узел<book>. -
ancestor: Эта ось выбирает всех предков текущего узла, включая родительский узел, но не включая сам узел. Например,ancestor::bookstoreвыберет все<bookstore>элементы, которые являются предками текущего узла. -
ancestor-or-self: Эта ось выбирает всех предков текущего узла, включая сам узел. Это полезно, когда нужно включить текущий узел в выборку. -
descendant: Эта ось выбирает всех потомков текущего узла, но не включает сам узел. Например,descendant::titleвыберет все<title>элементы, которые являются потомками текущего узла. -
descendant-or-self: Эта ось выбирает всех потомков текущего узла, включая сам узел. Это полезно, когда нужно включить текущий узел в выборку. -
following: Эта ось выбирает все узлы, которые следуют за текущим узлом в документе, но не являются его потомками. Например, если текущий узел — это<title>, тоfollowing::authorвыберет все<author>элементы, которые следуют за<title>. -
following-sibling: Эта ось выбирает всех узлов, которые являются следующими соседями текущего узла. Например,following-sibling::authorвыберет все<author>элементы, которые следуют за текущим узлом на том же уровне. -
preceding: Эта ось выбирает все узлы, которые предшествуют текущему узлу в документе, но не являются его предками. Например, если текущий узел — это<author>, тоpreceding::titleвыберет все<title>элементы, которые предшествуют<author>. -
preceding-sibling: Эта ось выбирает всех узлов, которые являются предыдущими соседями текущего узла. Например,preceding-sibling::titleвыберет все<title>элементы, которые предшествуют текущему узлу на том же уровне. -
self: Эта ось выбирает текущий узел. Например,self::node()выберет сам текущий узел. -
attribute: Эта ось выбирает атрибуты текущего узла. Например,attribute::idвыберет атрибутidтекущего узла. -
namespace: Эта ось выбирает все узлы пространства имен текущего узла. Она редко используется на практике.
Каждая из этих осей позволяет точно указать, какие узлы должны быть выбраны в результате запроса, что делает XPath мощным инструментом для работы с XML-документами.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться