Применение операции 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" и т.п.