我正在寻找一个简单的 Java 片段来从(任何)XML 结构中删除空标签
<xml>
<field1>bla</field1>
<field2></field2>
<field3/>
<structure1>
<field4>bla</field4>
<field5></field5>
</structure1>
</xml>
应该变成;
<xml>
<field1>bla</field1>
<structure1>
<field4>bla</field4>
</structure1>
</xml>
最佳答案
这个 XSLT 样式表应该可以满足您的需求:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:if test=". != '' or ./@* != ''">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
它应该还保留为空但具有非空属性的元素。如果您不希望出现这种情况,请更改:
<xsl:if test=". != '' or ./@* != ''">
收件人:<xsl:if test=". != ''">
如果您想知道如何在 Java 中应用 XSLT,互联网上应该有很多教程。祝你好运!
关于Java 删除空的 XML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1687203/