.

Теперь я могу применить образец «key()» для выбора элементов <PLANET> с атрибутом COLOR со значением «BLUE» таким образом:

<?xml version='1.0'?>

<xsl:stylesheet version='1.0'

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

 <xsl:key name='COLOR' match='PLANET' use='@COLOR'/>

 <xsl:template match='/PLANETS'>

  <HTML>

   .

   .

   .

    <TABLE BORDER='2'>

     <TR>

      <TD>Name</TD>

      <TD>Mass</TD>

      <TD>Radius</TD>

      <TD>Day</TD>

     </TR>

     <xsl:apply-templates select='key('COLOR', 'BLUE')'/>

    </TABLE>

   </BODY>

  </HTML>

 </xsl:template>

 .

 .

 .

И вот результат — как видите, единственной планетой, удовлетворившей образцу, была Земля:

<HTML>

 <НЕАD>

  <TITLE>

   The Planets Table

  </TITLE>

 </HEAD>

 <BODY>

  <H1>

   The Planets Table

  </H1>

  <TABLE BORDER='2'>

   <TR>

    <TD>Name</TD>

    <TD>Mass</TD>

    <TD>Radius</TD>

    <TD>Day</TD>

   </TR>

   <TR>

    <TD>Earth</TD>

    <TD>1 (Earth = 1)</TD>

    <TD>2107 miles</TD>

    <TD>1 days</TD>

   </TR>

  </TABLE>

 </BODY>

</HTML>

system-property()

Функция system-property возвращает значение нескольких системных свойств в виде строк; вот как ей следует пользоваться:

string system-property(property)

Можно проверять следующие возможные значения системного свойства property:

xsl:version. Возвращает версию XSLT;

xsl:vendor. Возвращает строку, идентифицирующую производителя процессора XSLT;

xsl:vendor-url. Возвращает URL производителя процессора XSLT.

Вот пример — версию XSLT можно проверить, вызвав system-property('xsl:version') ;

<?xml version='1.0'?>

<xsl:stylesheet version='2.0'

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

 .

 .

 .

 <xsl:if text='system-property('xsl:version')=2.0'>

  <xsl:namespace name='starpowder'/>

 </xsl:if>

 .

 .

 .

</xsl:stylesheet>

Проверка версии XSLT может понадобиться, если вы хотите воспользоваться возможностями, которые появились в последних версиях.

unparsed-entity-uri()

Функция unparsed-entity-uri() предоставляет доступ к объявлениям неразобранных сущностей в DTD или схеме исходного документа. Неразобранная сущность (unparsed entity) — это обычно двоичные данные, такие как файл с рисунком. Функция применяется следующим образом:

string unparsed-entity-uri(name)

В функцию передается имя name неразобранной сущности, и функция возвращает для нее идентификатор. В следующем примере (листинг 8.6) я добавил в planets.xml DTD и объявил три неразобранных сущности, соответствующих рисункам планет — image1, image2 и image3, — и обратился к ним, добавив в каждый элемент

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

0

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

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