2012-10-14 26 views
0

我想使用Java的XMLStreamReader解析一个巨大的(> 1GB)xml文件。我使用getText()方法来提取节点的内容。我拥有的xml文件编码为ISO-8859-1,并且某些字符具有特殊编码,例如&在文件中编码为&关于XML编码字符的Java XMLStreamReader.getText()扼流圈?

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

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

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

问题在哪里? xml文件是否正确编码?我正确使用Java分析器吗?

谢谢!

回答

2

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

尝试使用getElementText()代替。

+0

是的,这似乎是问题的根源,非常感谢! – The111