Книга: XSLT

Элемент : создание новых атрибутов

Элемент <xsl:attribute>: создание новых атрибутов

Аналогично тому, как вы можете создавать новые элементы при помощи <xsl:element> и устанавливать имя и содержимое элемента на этапе выполнения, при помощи элемента <xsl:attribute> это можно делать для атрибутов. 

У элемента два атрибута:

• name (обязательный). Имя нового атрибута. Принимает значение шаблона значений атрибута, возвращающего QName;

• namespace (необязательный). Пространство имен нового атрибута. Устанавливается в URI.

Этот элемент содержит в себе тело шаблона, которое устанавливает значение атрибута.

В листинге 6.7 я создаю новые элементы <PLANET> с атрибутами, которые соответствуют различным названиям планет (значения берутся из атрибута COLOR исходных элементов <PLANET>).

Листинг 6.7. Применение <xsl:attribute>

<?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">
  <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>

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


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