在我的xslt中,我想保留所有具有class =“myName”的类属性,但删除任何节点上的所有其他类属性。
有人可以帮我解决这个问题。
由于
答案 0 :(得分:1)
这可以通过覆盖身份转换,添加模板来忽略没有正确值的类属性来实现
因此,给出以下XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@class[. != 'myName']" />
</xsl:stylesheet>
应用于以下XML
<a class="remove">
<b class="myName">Test</b>
</a>
以下是输出
<a>
<b class="myName">Test</b>
</a>
答案 1 :(得分:1)
如果您没有任何其他模板与@class
匹配的元素,则可以使用:
<xsl:template match="@class[.!='myName']"/>