</xsl:template>

 <xsl:template match='PLANET'>

  <PLANET>

   <xsl:attribute name='{NAME}'>

    <xsl:value-of select='@COLOR'/>

   </xsl:attribute>

  </PLANET>

 </xsl:template>

</xsl:stylesheet>

Как можно видеть в приведенном ниже результате, я создал новые атрибуты «с ходу», используя названия планет:

<НТМL>

 <HEAD>

  <TITLE>

   Planets

  </TITLE>

 </HEAD>

 <BODY>

  <PLANET Mercury='RED'>

  </PLANET>

  <PLANET Venus='WHITE'>

  </PLANET>

  <PLANET Earth='BLUE'>

  </PLANET>

 </BODY>

</HTML>

Элемент <xsl:comment>: создание комментариев

По ходу дела можно также создавать и комментарии при помощи элемента <xsl:comment>. Этот элемент не имеет атрибутов и содержит тело шаблона, задающего текст комментария.

В листинге 6.8 я создаю комментарии для замены элементов <PLANET>; текст комментария включает название планеты.

Листинг 6.8. Применение <xsl:comment>

<?xml version='1.0'?>

<xsl:stylesheet version='1.0'

 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

 <xsl:template match='PLANETS'>

  <HTML>

   <HEAD>

    <TITLE>

     Planets

    </TITLE>

   </HEAD>

   <BODY>

    <xsl:apply-templates select='PLANET'/>

   </BODY>

  </HTML>

 </xsl:template>

 <xsl:template match='PLANET'>

  <xsl:comment>This was the <xsl:value-of select='NAME'/> element</xsl:comment>

 </xsl:template>

</xsl:stylesheet>

Вот результат:

<HTML>

 <HEAD>

  <TITLE>

   Planets

  </TITLE>

 </HEAD>

 <BODY>

  <!--This was the Mercury element-->

  <!--This was the Venus element-->

  <!--This was the Earth element-->

 </BODY>

</HTML>

Элемент <xsl:processing-instruction>: создание инструкций обработки

При помощи элемента <xsl:processing-instruction> можно создавать новые инструкции обработки. У этого элемента один атрибут:

• name (обязательный). Задает имя инструкции обработки. Принимает значение шаблона значений атрибута, возвращающего NCName.

В следующем примере я удалил инструкцию <?xml-stylesheet?> из начала planets.xml:

<?xml version='1.0'?>

<PLANETS>

 <PLANET>

  <NAME>Mercury</NAME>

  <MASS UNITS='(Earth = 1)'>.0553</MASS>

  <DAY UNITS='days'>58.65</DAY>

  <RADIUS UNITS='miles'>1516</RADIUS>

  <DENSITY UNITS='(Earth = 1)'>.983</DENSITY>

  <DISTANCE UNITS='million miles'>43.4</DISTANCE><!--B перигелии-- >

 </PLANET>

 <PLANET>

  <NAME>Venus</NAME>

  <MASS UNITS='(Earth = 1)'>.815</MASS>

  <DAY UNITS='days'>116.75</DAY>

  <RADIUS UNITS='miles'>3716</RADIUS>

Вы читаете XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату