Книга: XSLT

Применение операции Or

Применение операции Or

При помощи операции Or (или), |, можно осуществлять выбор по нескольким возможным образцам, что очень удобно с ростом сложности документов. В следующем примере я хочу отобразить элементы <NAME> и <MASS> полужирным, что задается тегом HTML <В>. Для выбора либо элементов <NAME>, либо <MASS> в новом правиле я использую операцию Or:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/PLANETS">
  <HTML>
   <HEAD>
    .
    .
    .
   </BODY>
  </HTML>
 </xsl:template>
 <xsl:template match="PLANET">
  <TR>
   <TD><xsl:apply-templates select="NAME"/></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="NAME | MASS">
  <B>
   <xsl:apply-templates/>
  </B>
 </xsl:template>
 <xsl:template match="RADIUS">
  <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>
  .
  .
  .
   <TR>
    <TD><B>Mercury</B></TD>
    <TD><B>.0553</B></TD>
    <TD>1516 miles</TD>
    <TD>58.65 days</TD>
   </TR>
   <TR>
    <TD><B>Venus</B></TD>
    <TD><B>.815</B></TD>
    <TD>3716 miles</TD>
    <TD>116.75 days</TD>
   </TR>
   <TR>
    <TD><B>Earth</B></TD>
    <TD><B>1</B></TD>
    <TD>2107 miles</TD>
    <TD>1 days</TD>
   </TR>
  </TABLE>
 </BODY>
</HTML>

Операцию | можно применять к любым допустимым образцам — например, в таких выражениях, как "PLANET|PLANET//NAME"; можно использовать несколько операций | — например, "NAME|MASS|DAY" и т.п.

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


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