0

我正在尝试使用 Java 的 XMLStreamReader 解析一个巨大的(> 1GB)xml 文件。我使用 getText() 方法来拉取节点的内容。我拥有的 xml 文件被编码为 ISO-8859-1,并且某些字符具有特殊编码,例如在文件&中编码。&

因此,如果文件包含,例如:

<person>Jack</person>
<person>Jill</person>
<persons>Jack &amp; Jill</persons>

我尝试使用 getText() 获取每个节点的内容,第三个节点只返回Jack. 任何时候&xxx;遇到一个字符,它后面的字符(在同一个节点中)都不会被解析或返回。

哪里有问题?xml 文件编码是否正确?我是否正确使用了 Java 解析器?

谢谢!

4

1 回答 1

2

我怀疑问题在于解析器已将第三个人元素的内容拆分为多个处理事件。(这种行为next()记录在案。)调用getText()只是为您提供当前事件的文本。

尝试getElementText()改用。

于 2012-10-14T03:14:06.057 回答