我正在使用Stax游标api从大型xml文件中提取数据 . 当前我转到特殊标记的开头并使用JAXB解组标记 . 这适用于格式良好的xml文件 . 但不久前,我有一份文件,其中数十万个标签中的一个没有关闭 . JAXB使用XMLStreamReader,直到文档结束并失败 . 有没有办法从开始标记读取到结束标记并解组这个单独的标记?所以我会丢失两个带有Exception的标签而不是文档的其余部分 . 我找到的唯一方法是使用普通的BufferedReader而不是XMLStreamReader并检查行内容 . 但这个解决方案在我看来很难看 .
1 回答
我使用jackson对XML片段进行反序列化取得了一定的成功 . 当单个读取失败时,可以通过将光标前进到下一个片段来恢复该过程:
输出: