我正在尝试删除在我的代码
下面有空值的xml节点<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="node()|@*" >
<xsl:copy>
<xsl:apply-templates select="@*[.!='']" />
<xsl:apply-templates select="node()" />
</xsl:copy>
</xsl:template>
<Test><id value=""></id><name value="Test"></name></Test>
<Test><id /><name value="Test" /></Test>
<Test><name value="Test" /></Test>
此处<id\>
标记应移除。请提出遗漏的地方。
请帮我解决上述问题。
答案 0 :(得分:1)
您的脚本只会跳过空属性,而不是整个包含 元件。
如果您想跳过整个元素至少有一个空属性, 使用空模板,匹配这些元素:
<xsl:template match="*[@* = '']"/>
和普通的身份模板。
要省略空行,这些行留在这些“已删除”元素的位置,
您可以在脚本中添加<xsl:strip-space elements="*"/>
。