Книга: XSLT

Шаги расположения XPath, часть 1: оси

Шаги расположения XPath, часть 1: оси

В пути расположения ancestor::NAME, адресующем элемент <NAME>, который является предком контекстного узла, ancestor выступает осью. XPath поддерживает много различных осей, ниже приведен полный список:

• ось ancestor содержит предков (ancestor) контекстного узла, то есть родителей контекстного узла, родителей этих родителей и т.д., вплоть до корневого узла (включая его);

• ось ancestor-or-self содержит контекстный узел и его предков;

• ось attribute содержит атрибуты контекстного узла;

• ось child содержит детей контекстного узла;

• ось descendant содержит потомков (descendant) контекстного узла, то есть его детей, детей этих детей и т.д.;

• ось descendant-or-self содержит контекстный узел и его потомков;

• ось following содержит все узлы в том же документе, такие же, как контекстный узел, встретившиеся после контекстного узла;

• ось following-sibling содержит всех последующих братьев контекстного узла. «Брат» — узел, расположенный на том же уровне, что и контекстный узел;

• ось namespace содержит узлы пространств имен контекстного узла;

• ось parent содержит родителя контекстного узла;

• ось preceding содержит все узлы до контекстного узла;

• ось preceding-sibling содержит всех предшествующих «братьев» контекстного узла;

• ось self содержит контекстный узел.

В следующем примере шаблона я воспользовался осью descendant для выбора потомков контекстного узла, куда входят дочерние узлы, узлы-внуки, узлы-правнуки и т.д.:

<xsl:template match="PLANET">
 <DATA>
  <NAME>
   <xsl:value-of select="descendant::NAME"/>
  </NAME>
  <MASS>
   <xsl:value-of select="descendant::MASS"/>
  </MASS>
  <DAY>
   <xsl:value-of select="descendant::DAY"/>
  </DAY>
 </DATA>
</xsl:template>

В этой главе мы рассмотрим все перечисленные оси. В данном примере осью является descendant, а имена элементов NAME, MASS и DAY — это условия узлов.

Оглавление книги


Генерация: 0.907. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз