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

Union of nodes

Operators "union" and "|" are equivalent. They take two sequences of nodes and return a sequence of all nodes that occur in either of these operands. All nodes in the final sequence are unique, it means that if both original sequences contain the same node this node appears just once in the final sequence (compare with "," operator).

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">
                  <xxx>
                        <xsl:value-of  select="bbb union ccc"/>
                  </xxx>
                  <yyy>
                        <xsl:value-of  select="bbb | ccc"/>
                  </yyy>
                  <zzz>
                        <xsl:value-of  select="bbb | *[1] | *[2] | *[position() != last()]"/>
                  </zzz>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb>B1</bbb>
            <bbb>B2</bbb>
            <ccc>C1</ccc>
            <ccc>C2</ccc>
      </aaa>
Output

      <xxx>B1 B2 C1 C2</xxx>
      <yyy>B1 B2 C1 C2</yyy>
      <zzz>B1 B2 C1</zzz>


Previous chapter: Sequences
Next chapter: Value-of
Previous page: - - -
Next page: Intersection of nodes