我有一个XML文件,其中包含许多员工记录(例如最多1M),如下所示:
<employee>
<name>peter</name>
<mobile>435432</mobile>
<employee>
<employee>
<name>Mary</name>
<mobile>324213</mobile>
<employee>
<employee>
<name>May</name>
<mobile>54342423</mobile>
<employee>
我使用JAXB将员工记录映射到以下Java对象:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "employee")
public class Employee {
@XmlElement(name = "name")
private String name;
@XmlElement(name = "mobile")
private String mobile;
}
XML的内容无法更改并且提供此XML,如何使用JAXB将每个员工XML记录解组为Employee对象,以便我可以逐个处理它?</ p>
答案 0 :(得分:2)
您可以使用StAX XMLStreamReader
解析XML,然后导航到第一个emoloyee
元素并在该状态下解组XMLStreamReader
,然后将其放在下一个emoloyee
元素和重复。
我的XML没有根元素
您应该可以针对您的用例使用SequenceInputStream
。您将在InputStream
:
InputStream
中打开的元素的close元素。然后将SequenceInputStream
的实例传递给我在原始答案中提到的XMLStreamReader
,你应该很好。