2012-10-14 25 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