Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建一个XMLStreamReader,在出现“错误”时可以继续;致命的;错误?_Java_Xml Parsing - Fatal编程技术网

Java 如何创建一个XMLStreamReader,在出现“错误”时可以继续;致命的;错误?

Java 如何创建一个XMLStreamReader,在出现“错误”时可以继续;致命的;错误?,java,xml-parsing,Java,Xml Parsing,我需要寻找一个巨大的XML文件,开始从字节位置读取XML数据,基本上读取一个块。我正在创建一个XMLStreamReader,如下所示: final XMLInputFactory factory = XMLInputFactory.newInstance(); reader = factory.createXMLStreamReader(inputStream); 这个阅读器可以在流中的任何位置开始读取,但我希望它跳过内容,直到找到标记的开始。我不想让它验证任何东西 例如,它可以在Frest

我需要寻找一个巨大的XML文件,开始从字节位置读取XML数据,基本上读取一个块。我正在创建一个
XMLStreamReader
,如下所示:

final XMLInputFactory factory = XMLInputFactory.newInstance();
reader = factory.createXMLStreamReader(inputStream);
这个阅读器可以在流中的任何位置开始读取,但我希望它跳过内容,直到找到标记的开始。我不想让它验证任何东西

例如,它可以在FrestTrrt< /C> >:

中开始阅读
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阅读器阅读文档?简单的文本阅读不就足够了吗?你只需要阅读一些你感兴趣的标签就可以了?