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