Define a parameter and use it : para « XSLT stylesheet « XML






Define a parameter and use it


File: Data.xml


<wine grape="Cabernet">
  <winery>shop 1</winery>
  <product>product 1</product>
  <year>1996</year>
  <price>11.99</price>
</wine>
File: Transform.xslt

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

  <xsl:output method="html" />

  <xsl:param name="bodyTextSize">10pt</xsl:param>

  <xsl:template match="/">
    <xsl:if test="not(contains($bodyTextSize,'pt'))">
      <xsl:message terminate="yes">
        bodyTextSize must be specified in points (pt).
      </xsl:message>
    </xsl:if>
    <xsl:apply-templates />
  </xsl:template>

  <xsl:template match="winery">
    <b>
      <font size="{$bodyTextSize}">
        <xsl:apply-templates />
        <xsl:text> </xsl:text>
        <xsl:value-of select="../@grape" />
      </font>
    </b>
    <br />
  </xsl:template>

  <xsl:template match="product">
    <i>
      <font size="{$bodyTextSize}">
        <xsl:apply-templates />
      </font>
    </i>
    <br />
  </xsl:template>

  <xsl:template match="year | price">
    <font size="{$bodyTextSize}">
      <xsl:apply-templates />
    </font>
    <br />
  </xsl:template>

</xsl:stylesheet>

Output:


  <b><font size="10pt">shop 1 Cabernet</font></b><br>
  <i><font size="10pt">product 1</font></i><br>
  <font size="10pt">1996</font><br>
  <font size="10pt">11.99</font><br>

 








Related examples in the same category

1.Define a parameter and use it later
2.Compare value with defined parameter
3.Change these global parameter values