<PLANET> атрибут IMAGE.

Листинг 8.6. planets.xml с неразобранными сущностями

<?xml version='1.0'?>

<?xml-stylesheet type='text/xml' href='planets.xsl'?>

<!DOCTYPE PLANETS [

<!ELEMENT PLANET (CUSTOMER)*>

<!ELEMENT CUSTOMER (NAME,MASS,RADIUS,DAY)>

<!ELEMENT NAME (#PCDATA)>

<!ELEMENT MASS (#PCDATA)>

<!ELEMENT RADIUS (#PCDATA)>

<!ELEMENT DAY (#PCDATA)>

<!ENTITY image1 SYSTEM 'http://starpowder.com/image1.gif' NDATA GIF>

<!ENTITY image2 SYSTEM 'http://starpowder.com/image2.gif' NDATA GIF>

<!ENTITY image3 SYSTEM 'http://starpowder.com/image3.gif' NDATA GIF>

]>

<PLANETS>

 <PLANET IMAGE='image1'>

  <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 IMAGE='image2'>

  <NAME>Venus</NAME>

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

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

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

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

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

 </PLANET>

 <PLANET IMAGE='image3'>

  <NAME>Earth</NAME>

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

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

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

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

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

 </PLANET>

</PLANETS>

(Заметьте, что некоторые процессоры XSLT основаны на разборщиках XML, которые проверяют, могут ли они найти сущность по заданному URI, — потому, если вы хотите опробовать этот пример, вставьте URI каких-либо настоящих рисунков.) Теперь я могу извлечь URI рисунков в таблице стилей при помощи функции unparsed-entity-uri и создать элементы HTML <IMG>, применив эту функцию в результирующем документе (листинг 8.7).

Листинг 8.7. Применение unparsed-entity-uri

<?xml version='1.0'?>

<xsl:stylesheet version='1.0'

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

 <xsl:template match='/PLANETS'>

  <HTML>

   .

   .

   .

  </HTML>

 </xsl:template>

 <xsl:template match='PLANET'>

  <TR>

   <TD><xsl:value-of select='NAME'/>

    <IMG SRC='{unparsed-entity-uri(@IMAGE)}'/>

   </TD>

   <TD><xsl:apply-templates select='MASS'/></TD>

   <TD><xsl:apply-templates select='RADIUS'/></TD>

   <TD><xsl:apply-templates select='DAY'/></TD>

  </TR>

 </xsl:template>

 <xsl:template match='MASS'>

  <xsl:value-of select='.'/>

  <xsl:text> </xsl:text>

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

 </xsl:template>

 .

 .

 .

 <xsl:template match='DAY'>

  <xsl:value-of select='.'/>

  <xsl:text> </xsl:text>

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

 </xsl:template>

</xsl:stylesheet>

И вот результирующий документ:

<HTML>

 <HEAD>

  <TITLE>

   The Planets Table

  </TITLE>

 </HEAD>

 <BODY>

  <H1>

   The Planets Table

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

0

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

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