使用XSLT从XML中删除空节点 - 不应从非空节点中删除属性

时间:2014-05-13 14:06:05

标签: xml xslt

我使用下面的模板从XML中删除空节点,但它也从非空节点中删除了class属性:

<xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
  <xsl:template match="*[not(child::node())]"/>
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>

我不想从非空节点中删除属性。请提出建议?

1 个答案:

答案 0 :(得分:1)

使用此:

<xsl:template match="*[not(child::node())]"/>
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>