Книга: XSLT

Применение оси descendant-or-self

Применение оси descendant-or-self

Ось descendant-or-self содержит всех потомков контекстного узла и сам контекстный узел. Заметьте, однако, что она не содержит атрибутов и узлов пространств имен.

В следующем примере (листинг 7.7) демонстрируется работа с осью. В этом случае я создал упрощенную таблицу стилей (подробнее об упрощенных таблицах стилей см. главу 2), которая обрабатывает все элементы с использованием потомков, генерируя уже знакомую нам HTML-таблицу данных о планетах.

Листинг 7.7. Применение оси descendant-or-self

<HTML xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
 <HEAD>
  <TITLE>
   The Planets Table
  </TITLE>
 </HEAD>
 <BODY>
  <H1>
   The Planets Table
  </Н1>
  <TABLE BORDER="2">
   <TR>
    <TD>Name</TD>
    <TD>Mass</TD>
    <TD>Radius</TD>
    <TD>Day</TD>
   </TR>
   <xsl:for-each select="/descendant-or-self::node()/PLANET">
    <TR>
     <TD><xsl:value-of select="NAME"/></TD>
     <TD><xsl:value-of select="MASS"/></TD>
     <TD><xsl:value-of select="RADIUS"/></TD>
     <TD><xsl:value-of select="DAY"/></TD>
    </TR>
   </xsl:for-each>
  </TABLE>
 </BODY>
</HTML>

Вот и все. Я применил здесь упрощенную таблицу стилей, чтобы подчеркнуть, что при помощи таких осей потомков, как descendant или descendant-or-self, вы можете автоматически обрабатывать все выбираемые узлы, во многом аналогично тому, как это делают элементы <xsl:for-each> или <xsl:template>.

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


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