私は次のようなXSLT1.0を持っています:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="paragraph">
    <p>
      <xsl:apply-templates/>
    </p>
  </xsl:template>
</xsl:stylesheet>
ただ、最初のテンプレートに似たテンプレートがたくさんあります。これらの各テンプレートで特定の属性を発行したいのですが、それを実現するために最も侵襲性の低い変更を加えたいと思います。これが私が最初に試したものです:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="paragraph">
    <p>
      <xsl:apply-templates/>
    </p>
  </xsl:template>
  <xsl:template match="@class">
    <xsl:attribute name="class">
      <xsl:value-of select="@class"/>
    </xsl:attribute>
  </xsl:template>
</xsl:stylesheet>
しかし、それはうまくいきませんでした。私はこれを試しました:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="paragraph">
    <p>
      <xsl:attribute name="class">
        <xsl:value-of select="@class"/>
      </xsl:attribute>
      <xsl:apply-templates/>
    </p>
  </xsl:template>
</xsl:stylesheet>
ただし、すべてのテンプレートでこれを機能させるには、多くのコードの重複が必要になります。それが私にできる最善のことですか、それともこれを機能させるためのより適切な方法がありますか?