XSLT - 删除所有属性

时间:2013-04-03 18:28:57

标签: xml xslt xslt-1.0

非常直截了当的问题。没有找到这个答案。

希望看到没有属性轴的XSLT 1.0,如果可能的话也会看到其他的(我使用的是python的lxml lib,它并没有真正追上那些东西)。

2 个答案:

答案 0 :(得分:8)

您的解决方案应该可以正常运行,但有一种更简单的方法 - 只需使用不包含属性的身份模板:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output omit-xml-declaration="yes" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="node()">
    <xsl:copy>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

答案 1 :(得分:0)

我在写这个问题时自己想出来了。仍然发布它,因为我找不到它:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output omit-xml-declaration="yes" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="node()|@*" name="identity">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="@*"/>

</xsl:stylesheet>

等待其他答案/评论,以防它不完美。