Java 如何创建一个XMLStreamReader,在出现“错误”时可以继续;致命的;错误?
我需要寻找一个巨大的XML文件,开始从字节位置读取XML数据,基本上读取一个块。我正在创建一个Java 如何创建一个XMLStreamReader,在出现“错误”时可以继续;致命的;错误?,java,xml-parsing,Java,Xml Parsing,我需要寻找一个巨大的XML文件,开始从字节位置读取XML数据,基本上读取一个块。我正在创建一个XMLStreamReader,如下所示: final XMLInputFactory factory = XMLInputFactory.newInstance(); reader = factory.createXMLStreamReader(inputStream); 这个阅读器可以在流中的任何位置开始读取,但我希望它跳过内容,直到找到标记的开始。我不想让它验证任何东西 例如,它可以在Frest
XMLStreamReader
,如下所示:
final XMLInputFactory factory = XMLInputFactory.newInstance();
reader = factory.createXMLStreamReader(inputStream);
这个阅读器可以在流中的任何位置开始读取,但我希望它跳过内容,直到找到标记的开始。我不想让它验证任何东西
例如,它可以在
rstAttr='12345' secondAttr='QWERTY'>
</endElement>
<startReadingAtLeastFromHere>
...
rstAttr='12345'secondAttr='QWERTY'>
...
我真的不需要阅读
,但我希望解析器至少阅读
以及之后的所有内容
我的问题是没有调用factory.setXMLReporter(reporter)
,所以我不能用它来告诉读者继续
现在我没有指定javax.xml.stream.XMLInputFactory
系统属性,它默认为Sun的xmlinputfactorympl
。它使用的是StaxErrorReporter
,它有一个名为fContinueAfterFatalError
的字段,但我找不到如何更改其值,也找不到如何用我自己的字段替换StaxErrorReporter
如果这太棘手,是否有任何基于拉的XML解析器可以配置为忽略错误并继续读取?我个人使用Akka Supervisors捕获致命错误并重新启动线程,以便进程继续进行。检查一下:你好,Nicolas Marchildon,我想你的问题已经过时了,但我想知道:如果你对标记不感兴趣,那么为什么要用xml阅读器阅读文档?简单的文本阅读不就足够了吗?你只需要阅读一些你感兴趣的标签就可以了?