我正在尝试使用Java的XMLStreamReader解析一个巨大的(> 1GB)xml文件。我使用getText()方法来提取节点的内容。我拥有的xml文件编码为ISO-8859-1,有些字符具有特殊编码,例如&
在文件中编码为&
。
因此,如果文件包含,例如:
<person>Jack</person>
<person>Jill</person>
<persons>Jack & Jill</persons>
我尝试使用getText()获取每个节点的内容,第三个节点只返回Jack
。只要遇到&xxx;
字符,就不会解析或返回其后的字符(在同一节点中)。
问题出在哪里? xml文件是否正确编码?我正确使用Java解析器吗?
谢谢!
答案 0 :(得分:2)
我怀疑问题在于解析器已将第三人称元素的内容拆分为多个处理事件。 (next()
的此行为为documented。)调用getText()
仅为您提供当前事件的文本。
请尝试使用getElementText()
。