Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Sequence Combinations (5/6) >

Using sequence operators with variables

Variables or parameters can be used in sequence combinations.

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:variable  name="a"
                        select="//ccc"/>
            <xsl:variable  name="b"
                        select="/*/*"/>

            <xsl:template  match="/aaa">
                  <xxx>
                        <xsl:value-of  select="$a union bbb"/>
                  </xxx>
                  <yyy>
                        <xsl:value-of  select="$a intersect $b"/>
                  </yyy>
                  <zzz>
                        <xsl:apply-templates  select="fff">
                              <xsl:with-param  name="c"
                                          select="*/*[1]"/>
                        </xsl:apply-templates>
                  </zzz>
            </xsl:template>

            <xsl:template  match="fff">
                  <xsl:param  name="c"/>
                  <xsl:value-of  select="* except $c"/>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb>B1</bbb>
            <bbb>B2</bbb>
            <ccc>C1</ccc>
            <fff>
                  <ccc>C2</ccc>
                  <ccc>C3</ccc>
                  <ddd>D1</ddd>
                  <ddd>D2</ddd>
            </fff>
      </aaa>
Output

      <xxx>B1 B2 C1 C2 C3</xxx>
      <yyy>C1</yyy>
      <zzz>C3 D1 D2</zzz>


Previous chapter: Sequences
Next chapter: Value-of
Previous page: Nodes in the final sequences appear in document order
Next page: Sequence operators and type errors