betwixt xml转java对象存在同名节点如何处理 50

<Body><student><age>25</age><name>张三</name></student><student><age>25</age><name>张三</... <Body>
<student>
<age>25</age>

<name>张三</name>
</student>

<student>
<age>25</age>

<name>张三</name>
</student>
<teacher>
<age>25</age>

<name>张三</name>

</teacher>

<teacher>
<age>25</age>

<name>李四</name>
</teacher>
</Body>

public class Body{
private Student student;

private Teacher teacher;

...

}

现在用betwixt去解析的话,解析完只会有一个Student对象和一个Teacher对象,没办法全部读取出来。xml是对方接口给的没办法进行修改,请问这个Body类应该如何映射,XML到对象的转换中哪些地方要处理的?
展开
 我来答
QQMSD8
2014-08-18 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
<Body>
<student>
<age>25</age>
<name>张三</name>
</student>
<student>
<age>25</age>
<name>张三</name>
</student>
<teacher>
<age>25</age>
<name>张三</name>
</teacher>
<teacher>
<age>25</age>
<name>李四</name>
</teacher>
</Body>
首先这是一段不合法的XML格式的字符串,已经违反了w3c标准
如果你的student节点可能存在重复的,那么就应该是个数组,这样,不管你是用java自带的dom,sax,或者是第三方的dom4j,pull,XStream......都可以正常解析了(打字不容易,请采纳哈)
正确的格式参考:
<Body>
<students>
<student>
<age>25</age>
<name>张三</name>
</student>
<student>
<age>25</age>
<name>张三</name>
</student>
</students>
<teacher>
<age>25</age>
<name>张三</name>
</teacher>
<teacher>
<age>25</age>
<name>李四</name>
</teacher>
</Body>

这个java类的定义就是这样的:
public class Body{
private List<Student> students;

private Teacher teacher;

...

}
更多追问追答
追问
这是对方给的报文格式,没办法改所以才头疼啊。。

还是谢谢了
追答
那这样的话,你只能用sax类的解析器去解析了,但是,当你遇上这种节点的时候

可能会被最后一个替换,
当然,也可以自己做处理
Rainnous_bhw
2014-08-18 · TA获得超过111个赞
知道小有建树答主
回答量:89
采纳率:100%
帮助的人:89.4万
展开全部
为什么不用dom4j方式解析?连sun公司都用dom4j
追问
实际的报文非常非常长,用dom4j去解析的话很费事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式