Вы можете попробовать что-то вроде этого (к вашему сведению, я немного изменил xml)
<employee>
<person>
<id>1</id>
<name>Bob</name>
<age>25</age>
</person>
<person>
<id>2</id>
<name>Alex</name>
<age>15</age>
</person>
</employee>
Класс личности
public class Person {
private long id;
private String name;
private int age;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
Класс работника
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.LinkedHashSet;
@XmlRootElement(name = "employee")
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {
@XmlElement(name = "person")
private LinkedHashSet<Person> listOfPerson;
public LinkedHashSet<Person> getListOfPerson() {
return listOfPerson;
}
}
И, наконец, мы можем получить эти данные (getEmployee (). GetListOfPerson () делает с тем, что вы хотите сделать)))
public Employee getEmployee() throws JAXBException {
File file = new File("data.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Employee.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Employee employee = (Employee) jaxbUnmarshaller.unmarshal(file);
return employee;
}