2010-10-06 97 views
0

好像這個問題已經爲我Reading escape characters with XMLStreamReaderXMLStreamReader的不讀完整文本值

看到之前拿出但是在這裏,我看到的問題是有點不同。

我正在閱讀一個非常大的XML文件,其中包含一個格式不正確的html代碼片段作爲標記值之一。這些值包含在CDATA中,通常它們不會引起任何問題。但間歇性地,XMLSTreamReader類的getText方法只讀取該CDATA中的一半文本,並且下一批中的第一個字符作爲示例:「<表>」,解析器將其視爲Start節點而不是Character,導致解析失敗。

有沒有人在使用Stax解析器之前遇到過這個問題。我在jdk1上使用sjsxp1.0.1實現。,5

任何幫助或瘋狂的想法,將不勝感激,因爲我現在沒有任何想法。

回答

1

我想我對這個問題提出了一些看法。這個問題似乎是在sjsxp實現中(即使是最新的)。有時候getText方法不會讀取整個文本,如果你和我一樣不幸,你會遇到一個標籤,這會導致問題。 我們計劃對可能有用的值進行編碼,但我們也嘗試了woodstox實現(http://woodstox.codehaus.org),而且似乎可以處理這種情況。所以想問一個後續問題吧

有沒有其他人使用過Stax實現Woodstox並知道是否有任何與sjsxp相比的問題?

+0

Woodstox的問題較少,並且會專門解決您遇到的問題。我認爲Sjsxp實際上不支持IS_COALESCING,儘管它是一個強制性的Stax屬性,所有符合的實現都應該支持這個屬性(我也認爲這有一個bugparade的bug) – StaxMan 2011-01-13 19:21:09

+0

btw:據我所知,Sjsxp並沒有被積極開發它增加了JDK;有一些錯誤修復,但我認爲JDK還有很多其他工作,因此它不是優先級。寫這封信的人離開公司幾年前(4+);實現是基於Xerces內部的,所以它不是一個乾淨的重寫。這就像背景(我在當天交換了幾封電子郵件) – StaxMan 2011-01-13 19:22:36