Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Elements and attributes (4/7) >

Creating elements with xsl:element

Elements can be created with xsl:element instructions. If names of elements are known at the beginning of the transformation it is more convenient to use literal result elements. If names of the elements must be calculated the xsl:element comes handy as inside its name attribute curly brackets can be used in the same way as in the previous examples.

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="/*">
                  <xsl:element  name="xxx">
                        <xsl:apply-templates  select="bbb"/>
                  </xsl:element>
            </xsl:template>

            <xsl:template  match="bbb">
                  <xsl:element  name="{.}-{position()}"/>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb>x</bbb>
            <bbb>y</bbb>
            <bbb>z</bbb>
      </aaa>
Output

      <xxx>
            <x-1/>
            <y-2/>
            <z-3/>
      </xxx>


Previous chapter: Conditional Expressions
Next chapter: Groups
Previous page: Escaping curly brackets
Next page: Creating attributes with xsl:attribute