Оси языка 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> в первой позиции.