首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除输入xml中的空标签

如何删除输入xml中的空标签
EN

Stack Overflow用户
提问于 2010-05-22 01:39:28
回答 5查看 5.7K关注 0票数 5

我的java模块从大型机获取大量的xml输入。不幸的是,大型机不能跳过可选元素,结果是我的输入中有很多空标签:

所以,

代码语言:javascript
复制
<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>

应该是:

代码语言:javascript
复制
<SSN>111111111</SSN>
<MaritalStatus>SINGLE</MaritalStatus>

我使用jaxb解组大型机发送的输入xml字符串。有没有一种干净/简单的方法来删除所有的空组标签,或者我必须在每个元素的代码中手动执行此操作。我的输入xml中有超过350个元素,所以如果jaxb本身有一种自动完成此操作的方法,我会很高兴。

谢谢,SGB

EN

Stack Overflow用户

发布于 2010-05-22 02:44:09

我认为您必须编辑您的大型机代码以获得最佳解决方案。当您的大型机生成XML时,您必须告诉它,如果XML为空,就不要输出标记。

我不认为你可以在客户端做太多的事情。如果您得到的XML中充满了空标记,那么您别无选择,只能全部解析它们--毕竟,如果不以某种方式解析标记,您如何判断它是否为空!

但也许您可以在JAX-B到达之前对XML文本执行正则表达式字符串替换:

代码语言:javascript
复制
String xml = //get the XML
xml = xml.replaceAll("<.*?/>", "");

这将删除像"“这样的空标签,但不会删除"”。

票数 4
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2884249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档