Оси языка Xpath
Материал из Umicms
Описание осей языка XPath:
- ancestor:: — Возвращает множество предков.
- ancestor-or-self:: — Возвращает множество предков и текущий элемент.
- attribute:: — Возвращает множество атрибутов текущего элемента.
- child:: — Возвращает множество потомков на один уровень ниже.
- descendant:: — Возвращает полное множество потомков.
- descendant-or-self:: — Возвращает полное множество потомков и текущий элемент.
- following:: — Возвращает необработанное множество, ниже текущего элемента.
- following-sibling:: — Возвращает множество элементов на том же уровне, следующих за текущим.
- namespace:: — Возвращает множество, имеющее пространство имён (то есть присутствует атрибут xmlns).
- parent:: — Возвращает предка на один уровень назад.
- preceding:: — Возвращает множество обработанных элементов исключая множество предков.
- preceding-sibling:: — Возвращает множество элементов на том же уровне, предшествующих текущему.
- self:: — Возвращает текущий элемент.
Cокращения для некоторых осей:
- attribute:: — можно заменить на «@»
- child:: — часто просто опускают
- descendant:: — можно заменить на «.//»
- parent:: — можно заменить на «..»
- self:: — можно заменить на «.»
Примеры:
Пример 1
<items>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</items>
<xsl:apply-templates select="items/item/following-sibling::item[position()='2']"/>
Вернет '34', то есть значения узлов <item>, которые следуют за узлом <item> во второй позиции.
Пример 2:
<items>
<item>
<page>page1</page>
<page>page2</page>
<page>page3</page>
</item>
<item>2</item>
<item>3</item>
<item>4</item>
</items>
<xsl:apply-templates select="descendant::items/item[position()='1']"/>
Вернет 'page1 page2 page3', то есть значение всех потомков узла <item> в первой позиции.