Java 删除空的 XML 标签

标签 java xml tags

我正在寻找一个简单的 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/

相关文章:

java - 如何使用 wsdl2java 创建的 java 客户端获取 Soap 输出数据

使用命名空间的 Python ElementTree find()

tags - 有没有可以更改NFC Tag序列号的软件?

java - Dagger2 在注入(inject)类中注入(inject)时出错

java - 我试图在对象的 ArrayList 中搜索重复项,如果不存在则添加新对象

java - 如何将空字符串序列化为单个空标记?

ios - 如何使用一键添加不同整数的分数(swift3)

java - Java 中的 System.out.write() - 不打印整数值的最低有效位

java - 为什么这个数组会被修改?

android - 如何读取已连接到设备的 NFC 标签