Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Variables and Parameters (10/14) >

Sending parameters to templates

Processing of templates can be influenced by parameters which are send to the template. Element xsl:param is used inside template to receive a parameter from an xsl:apply-templates, where it is specified with xsl:with-param element. Number of parameters is not restricted.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <z-1>
                        <xsl:apply-templates  select="bbb"/>
                  </z-1>
                  <z-2>
                        <xsl:apply-templates  select="bbb">
                              <xsl:with-param  name="parA"
                                          select="1"/>
                        </xsl:apply-templates>
                  </z-2>
                  <z-3>
                        <xsl:apply-templates  select="bbb">
                              <xsl:with-param  name="parA"
                                          select="2"/>
                              <xsl:with-param  name="parB"
                                          select="33"/>
                        </xsl:apply-templates>
                  </z-3>
            </xsl:template>

            <xsl:template  match="bbb">
                  <xsl:param  name="parA"/>
                  <xsl:param  name="parB"/>
                  <xxx>
                        <xsl:value-of  select="$parA"/>
                  </xxx>
                  <yyy>
                        <xsl:value-of  select="$parB"/>
                  </yyy>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb/>
      </aaa>
Output

      <z-1>
            <xxx/>
            <yyy/>
      </z-1>
      <z-2>
            <xxx>1</xxx>
            <yyy/>
      </z-2>
      <z-3>
            <xxx>2</xxx>
            <yyy>33</yyy>
      </z-3>


Previous chapter: Named-Templates
Next chapter: Stylesheet Functions
Previous page: Circular definitions
Next page: Default values of parameters