[英]How to unmarshalling xml with different tags
我有以下xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<beer>some beer</beer>
<beer>some another beer</beer>
<food>some food</food>
<food>some another food</food>
</root>`enter code here`
要使用JAXB解组此xml,请使用以下源:
@XmlElement(name="beer")
public void setKey(Set<String> key)
{
this.key = key;
}
当我为Set解组xml时,我收到了结果:“一些啤酒”和“一些其他啤酒”,因为注释和标签名称。 因此,我该如何解析“ root”标记中的所有子项。 即Set的结果必须是:一些啤酒,一些其他啤酒,一些食物,一些其他食物。
以前感谢您花费我的时间。
您真的需要JAXB吗? 如果是这样,也许这样的事情会有所帮助:
import java.util.ArrayList;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"beer",
"food"
})
@XmlRootElement(name = "root")
public class Root {
@XmlElement(required = true)
protected List<Beer> beer;
@XmlElement(required = true)
protected List<Food> food;
public List<Beer> getBeer() {
if (beer == null) {
beer = new ArrayList<Beer>();
}
return this.beer;
}
public List<Food> getFood() {
if (food == null) {
food = new ArrayList<Food>();
}
return this.food;
}
}
另外,您还需要使用吸气剂和吸气剂创建食品和啤酒类。 对于列表,不需要创建setter,因为可以在getter之后使用add()。 但我建议将DOM用于此任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.