gpt4 book ai didi

java - 使用 JAXB 将 XML 文件解析为流

转载 作者:行者123 更新时间:2023-11-30 08:53:15 25 4
gpt4 key购买 nike

我有一个 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>

最佳答案

您可以使用 StAX XMLStreamReader 解析 XML,然后导航到第一个 emoloyee 元素并解码该状态下的 XMLStreamReader,然后定位它在下一个 emoloyee 元素并重复。

更新

My XML does not have a root element

您应该能够为您的用例利用 SequenceInputStream。您将创建 InputStream 的 3 个实例:

  1. 一个代表你组成的起始元素
  2. 第二个代表你问题中显示的内容
  3. 最后一个表示您在第一个 InputStream 中打开的元素的关闭元素。

然后将 SequenceInputStream 的实例传递给我在原始答案中提到的 XMLStreamReader,你应该没问题。

关于java - 使用 JAXB 将 XML 文件解析为流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com