Add one more attribute to group and override the value of another : attribute set « XSLT stylesheet « XML






Add one more attribute to group and override the value of another



File: Data.xml
<poem year="1667" type="epic">
  <verse>line 3</verse>
  <verse>line 4</verse>
</poem>


File: Transform.xslt

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

  <xsl:output omit-xml-declaration="yes" />

  <xsl:attribute-set name="lineAttrs">
    <xsl:attribute name="status">done</xsl:attribute>
    <xsl:attribute name="hue">
    <xsl:value-of select="@color" />
  </xsl:attribute>
    <xsl:attribute name="number">
    <xsl:value-of select="amount" />
  </xsl:attribute>
    <xsl:attribute name="sourceElement">
    <xsl:text>src</xsl:text><xsl:value-of select="generate-id()" />
  </xsl:attribute>
  </xsl:attribute-set>

  <xsl:template match="verse">
    <xsl:element name="line" use-attribute-sets="lineAttrs">
      <xsl:attribute name="author">BD</xsl:attribute>
      <xsl:attribute name="hue">NO COLOR</xsl:attribute>

      <xsl:apply-templates />
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>

Output:


  <line status="done" hue="NO COLOR" number="" sourceElement="srcd2e3" author="BD">line 3</line>
  <line status="done" hue="NO COLOR" number="" sourceElement="srcd2e6" author="BD">line 4</line>

 








Related examples in the same category

1.Define and use attribute-set
2.use-attribute-sets
3.Create two attribute sets