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到对象的转换中哪些地方要处理的? 展开
<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到对象的转换中哪些地方要处理的? 展开
2个回答
2014-08-18 · 知道合伙人软件行家
关注
展开全部
<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;
...
}
<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类的解析器去解析了,但是,当你遇上这种节点的时候
可能会被最后一个替换,
当然,也可以自己做处理
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询