我正在尝试从源 XML 中删除空节点。删除空节点已经成功。但我也尝试删除所有包含空子节点的节点。
源 XML:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<element>
<a></a>
<b>sde</b>
<c fixedAttr="fixedValue">
<d>ert</d>
<e></e>
</c>
<f fixedAttr="fixedValue">
<g></g>
<h></h>
<i></i>
</f>
</element>
</data>
当前 XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" method="xml" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(@*|*|comment()|processing-instruction()) and normalize-space()='']"/>
</xsl:stylesheet>
当前结果:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<element>
<b>sde</b>
<c fixedAttr="fixedValue">
<d>ert</d>
</c>
<f fixedAttr="fixedValue"/>
</element>
</data>
想要的结果:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<element>
<b>sde</b>
<c fixedAttr="fixedValue">
<d>ert</d>
</c>
</element>
</data>
空的父节点<f fixedAttr="fixedValue"/>
也需要被移除。