XMLStreamReader的不读完整文本值

问题描述:

好像这个问题已经为我Reading escape characters with XMLStreamReaderXMLStreamReader的不读完整文本值

看到之前拿出但是在这里,我看到的问题是有点不同。

我正在阅读一个非常大的XML文件,其中包含一个格式不正确的html代码片段作为标记值之一。这些值包含在CDATA中,通常它们不会引起任何问题。但间歇性地,XMLSTreamReader类的getText方法只读取该CDATA中的一半文本,并且下一批中的第一个字符作为示例:“<表>”,解析器将其视为Start节点而不是Character,导致解析失败。

有没有人在使用Stax解析器之前遇到过这个问题。我在jdk1上使用sjsxp1.0.1实现。,5

任何帮助或疯狂的想法,将不胜感激,因为我现在没有任何想法。

我想我对这个问题提出了一些看法。这个问题似乎是在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