=> Главная База Знаний Xslt Элемент <xsl:attribute>: создание новых атрибутов


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

Элемент <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>