我的 java 模块从大型机获取大量输入 xml。不幸的是,大型机无法跳过可选元素,结果我在输入中得到了很多空标签:
所以,
<SSN>111111111</SSN>
<Employment>
<Current>
<Address>
<line1/>
<line2/>
<line3/>
<city/>
<state/>
<country/>
</Address>
<Phone>
<phonenumber/>
<countryCode/>
</Phone>
</Current>
<Previous>
<Address>
<line1/>
<line2/>
<line3/>
<city/>
<state/>
<country/>
</Address>
<Phone>
<phonenumber/>
<countryCode/>
</Phone>
</Previous>
</Employment>
<MaritalStatus>Single</MaritalStatus>
应该是:
<SSN>111111111</SSN>
<MaritalStatus>SINGLE</MaritalStatus>
我使用 jaxb 解码大型机发送给它的输入 xml 字符串。是否有一种干净/简单的方法来删除所有空组标签,或者我是否必须在每个元素的代码中手动执行此操作。我的输入 xml 中有超过 350 个元素,所以如果 jaxb 本身有一种自动执行此操作的方法,我会很高兴吗?
谢谢, 国标
最佳答案
您可以使用 XSLT 进行预处理。我知道它现在被认为有点“迪斯科”,但它应用起来又快又容易。
从这里tek-tips讨论,您可以使用 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>
关于java - 如何删除输入xml中的空标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884249/