xStream toXML javaBean转换为xml时如何去掉不想要的节点

使用this.mRequestXml=xStream.toXML(scicLife);将javaBean转换为xml时,body中包含一个类publicclassLLRe... 使用

this.mRequestXml = xStream.toXML(scicLife);
将javaBean转换为xml时,
body中包含一个类
public class LLRegisterSchema

{
private String OtherNoRgtReason;
private FDate fDate = new FDate(); // 处理日期
}
其中的fDate在转换为xml后,生成大量的节点信息

如下:
<com.sinosoft.lis.schema.LLRegisterSchema>
<RgOtherNoRgtReason23456789</RgOtherNoRgtReason
<fDate>
<mErrors>
<vErrors/>
<errorCount>0</errorCount>
<flag></flag>
此处包含大量无用的标签信息
....
</fDate>
</com.sinosoft.lis.schema.LLRegisterSchema>

我想把<fDate> </fDate> 标签和其内部的所有标签全部去掉,不生成到xml中,如何实现?

谢谢!!!
以上问题已找到解决方法,可以设置如下:
// 定义某一个属性的值不进行xml序列化
xStream.omitField(LLRegisterSchema.class, "fDate");
这样在生产LLRegisterSchema对应的xml节点时,就不会生成<fDate> </fDate>节点。
但有个新问题,就是一次只能处理一个类,如果存在不确定的多个相似的类,并且都存在fDate节点时,就没法处理了,也不能把LLRegisterSchema相似的类全部写一遍
xStream.omitField(LLRegisterSchema.class, "fDate");
xStream.omitField(LLRegisterSchema1.class, "fDate");
xStream.omitField(LLRegisterSchema2.class, "fDate");
这个大家有什么好的方法进行处理吗?
展开
 我来答
百度网友12ee0fd
2014-03-24 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1951万
展开全部
@XStreamOmitField
private FDate fDate = new FDate();
追问
加注解@XStreamOmitField的方式和xStream.omitField(LLRegisterSchema2.class, "fDate");
的效果是一样的,先有的类都早已开发完,不可能全部在进行添加注解。
现在判断每个类是否是Schema的实现类,如果是,其中就包含fDate,对其进行xStream.omitField(obj.getClass(), "fDate");设置,解决问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式