[xsl] deep copy without attributes

Subject: [xsl] deep copy without attributes
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Mon, 20 May 2013 14:12:27 +0100
I have done this

  <xsl:template match="*">
    <pattern id="{@*[1]}">
      <xsl:copy>
        <xsl:apply-templates mode="no-attributes"/>
      </xsl:copy>
    </pattern>
  </xsl:template>

  <xsl:template match="*" mode="no-attributes">
    <xsl:copy>
      <xsl:apply-templates mode="no-attributes"/>
    </xsl:copy>
  </xsl:template>


which seems cumbersome when what I really want to do is

  <xsl:template match="*">
    <pattern id="{@*[1]}">
      <xsl:copy-of select="node() except @*"/>
    </pattern>
  </xsl:template>

idea being to deep copy leaving the attribute nodes behind although
that syntax will not do that.

Current Thread