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

Setting value of an attribute created with xsl:attribute

The value of a new attribute can be specified either by content of xsl:attribute or by using XPath expression in select attribute.

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="/*">
                  <xxx>
                        <xsl:attribute  name="r"
                                    select="@z"/>
                        <xsl:apply-templates  select="bbb"
                                    mode="A"/>
                        <xsl:apply-templates  select="bbb"
                                    mode="B"/>
                  </xxx>
            </xsl:template>

            <xsl:template  match="bbb"
                        mode="A">
                  <yyy>
                        <xsl:attribute  name="b"
                                    select="@x * @y"/>
                  </yyy>
                  <yyy>
                        <xsl:attribute  name="b">
                              <xsl:value-of  select="2 * @x * @y"/>
                        </xsl:attribute>
                  </yyy>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa  z="10">
            <bbb  x="3"
                        y="5"/>
      </aaa>
Output

      <xxx  r="10">
            <yyy  b="15"/>
            <yyy  b="30"/>
      </xxx>


Previous chapter: Conditional Expressions
Next chapter: Groups
Previous page: Creating attributes with xsl:attribute
Next page: Setting value of an attribute created with xsl:attribute