将多个Xml元素映射到单个类

时间:2018-01-05 17:44:41

标签: java xml jaxb

让我们说我有一个像这样的Xml

<person>
<dob>xxxx</dob>
<name>yyyyyy</name>
<phone>zzzzzz</phone>
</person>

<person1>
<dob>xxxx</dob>
<name>yyyyyy</name>
<phone>zzzzzz</phone>
</person1>

有没有办法可以将person和person1数据映射到java中的单个类

我的java代码现在有两个单独的person和person1类

1 个答案:

答案 0 :(得分:0)

您可以在注释中声明多个元素。 e.g:

@XmlElements({
    @XmlElement(name="person", type=Person.class),
    @XmlElement(name="person1", type=Person.class)
})
List<Person> getPersons() {
    return persons;
}

如果两个元素在一个文档中可用,并且您希望将它们作为一个类显示,则可以自己组合这些元素。 e.g:

@XmlElement(name = "person")
public List<Person> getPerson() {
    return person;
}

@XmlElement(name = "person1")
public List<Person> getPerson1() {
    return person1;
}

public List<Person> getPeople() {
    List<Person> people = new ArrayList<Person>();
    if(person != null) people.addAll(person);
    if(person1 != null) people.addAll(person1);
    return people;
}