我有以下无效的 XML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<Page num="1" crop_box="0, 0, 595, 842" media_box="0, 0, 595, 842" rotate="0">
<Flow id="1">
<Para id="1">
<Line box="90, 754.639, 120.038, 12">
<Word box="90, 754.639, 22.6704, 12">This</Word>
</Line>
</Para>
</Flow>
</Page>
<?xml version="1.0" encoding="utf-8" ?>
<Page num="1" crop_box="0, 0, 595, 842" media_box="0, 0, 595, 842" rotate="0">
<Flow id="1">
<Para id="1">
<Line box="90, 754.639, 120.038, 12">
<Word box="90, 754.639, 22.6704, 12">This</Word>
</Line>
</Para>
</Flow>
</Page>
虽然它在结构上是无效的(它有两个根元素并且 XML 序言出现了两次),但它仍然可以被正确解析(即标签正确且内容也正确)。
所以,问题是,Java 中是否有一个 StAX(或任何其他基于流的)XML 解析器可以让我这样做?我检查了XMLInputFactory中的所有选项,但它们似乎都不允许解析器接受这种格式错误的 XML。