Книга: XSLT

Шаблон: значение по умолчанию

Шаблон: значение по умолчанию

Как я говорил ранее, в случае задания параметру значения при объявлении, оно может быть перекрыто, если вы зададите другое значение в элементе <xsl:with-param>. Но если другого значения не указывать, исходное значение выступит в роли значения по умолчанию.

Следующий пример видоизменяет рассмотренный ранее пример «COLORS». Шаблон имеет параметр COLOR, но я могу вызвать шаблон, не устанавливая COLOR в какое-либо определенное значение:

<xsl:template match="PLANET">
 <xsl:if test="NAME='Mercury'">
  <xsl:call-template name="COLORS">
   <xsl:with-param name="COLOR" select="'RED'"/>
  </xsl:call-template>
 </xsl:if>
 <xsl:if test="NAME='Venus'">
  <xsl:call-template name="COLORS">
   <xsl:with-param name="COLOR" select="'GREEN'"/>
  </xsl:call-template>
 </xsl:if>
 <xsl:if test="NAME='Earth'">
  <xsl:call-template name="COLORS">
  </xsl:call-template>
 </xsl:if>
</xsl:template>

В этом случае параметр COLOR принимает значение по умолчанию«blue» (голубой), заданное в элементе <xsl:param> в шаблоне «COLORS»:

<xsl:template match="PLANET">
 <xsl:if test="NAME='Mercury'">
  <xsl:call-template name="COLORS">
   <xsl:with-param name="COLOR" select="'RED'"/>
  </xsl:call-template>
 </xsl:if>
 <xsl:if test="NAME='Venus'">
  <xsl:call-template name="COLORS">
   <xsl:with-param name="COLOR" select="'GREEN'"/>
  </xsl:call-template>
 </xsl:if>
 <xsl:if test="NAME='Earth'">
  <xsl:call-template name="COLORS">
  </xsl:call-template>
 </xsl:if>
</xsl:template>
<xsl:template name="COLORS">
 <xsl:param name="COLOR" select="'blue'"/>
 <TR>
  <TD>
   <FONT COLOR="{$COLOR}"><xsl:value-of select="NAME"/></FONT>
  </TD>
  <TD>
   <FONT COLOR="{$COLOR}"><xsl:apply-templates select="MASS"/></FONT>
  </TD>
  <TD>
   <FONT COLOR="{$COLOR}"><xsl:apply-templates select="RADIUS"/></FONT>
  </TD>
  <TD>
   <FONT COLOR="{$COLOR}"><xsl:apply-templates select="DAY"/></FONT>
  </TD>
 </TR>
</xsl:template>

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


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