我试图找到一种方法来删除XML文档中的所有属性,除了一些指定的属性。我能够从指定的元素中删除一个属性,但是我无法从文档中的所有元素中删除所有属性(减去我想要保留的属性)。
例如: 如果我想只保留id和class属性,
此输入:
<body>
<div id="div1" class="hello" length="1">inner text</div>
<span id="div2" class="bye" length="2">inner text</span>
<ol id="div3" class="goodbye" length="3">inner text</ol>
</body>
应该是这个输出:
<body>
<div id="div1" class="hello">inner text</div>
<span id="div2" class="bye">inner text</span>
<ol id="div3" class="goodbye">inner text</ol>
<body>
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:java="org.dita.dost.util.GenUtils" exclude-result-prefixes="java">
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@id | @class| node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
如果您只使用单个模板,则应为:
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@id | @class"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
您现在拥有的内容仅适用于body
元素,并按格式复制其所有后代。