在Java中使用StAX动态拆分xml,替代方案?
因为在有限的(RAM)环境中处理大型xml文件可能是一个问题,特别是使用java和被迫使用Jsoup作为解析器,所以我决定使用SAX和StAX进行“动态处理”:经过多次尝试,我最终得到了我在internet上找不到的代码,因为它非常通用 想法很简单,您有一个已经在运行中解压缩的inputStream,其中包含一个XML文件,您需要在这个XML文件中拆分或(分块)一个特定对象及其所有内部XML代码,并将该字符串提供给其他解析器(如Jsoup) 当然,我的第一次尝试是使用Jsoup本机inputStream读取器,但它实际上下载了完整的XML文件,然后使用大量RAM对其进行解析 因此,我的代码看起来是这样的,我的单元测试工作得很好,对我来说一切都正常,但问题是,有时,在其他服务器中使用一些XML时,它只提取(奇数)对象,所以是第一个对象,然后是第三个对象,依此类推,而不是(偶数)对象 遗憾的是,我不能提供真正可以工作的xml示例,但正如您所看到的,它应该适用于任何一个示例 示例:输入=选择器“A_对象”在Java中使用StAX动态拆分xml,替代方案?,java,xml,inputstream,stax,Java,Xml,Inputstream,Stax,因为在有限的(RAM)环境中处理大型xml文件可能是一个问题,特别是使用java和被迫使用Jsoup作为解析器,所以我决定使用SAX和StAX进行“动态处理”:经过多次尝试,我最终得到了我在internet上找不到的代码,因为它非常通用 想法很简单,您有一个已经在运行中解压缩的inputStream,其中包含一个XML文件,您需要在这个XML文件中拆分或(分块)一个特定对象及其所有内部XML代码,并将该字符串提供给其他解析器(如Jsoup) 当然,我的第一次尝试是使用Jsoup本机inputSt
示例:输出
第一:
<A_object id=1>
<content_of_a>
</stuff>
</stuff>
</stuff>
</content_of_a>
</A_object>
第二:
<A_object id=2>
<content_of_a>
</stuff>
</stuff>
</stuff>
</content_of_a>
</A_object>
。。。
..
.
还有其他类似的方法吗 “有时”:什么时候?当你提供的信息比你的少时,你真的希望互联网上的陌生人帮你调试代码吗?对不起,Raedwald,这与其说是告诉我代码中的错误在哪里,不如说是“有别的方法吗?”。正如我所说,代码有它的单元测试,这一切都没问题,但是我在我控制的服务器中使用xml进行的单元测试,但是当来自其他服务器的xml出现时,我不能确定这是否有效,代码也没有错。就我所知,不应该有区别,但有区别,这就是问题所在。对不起打扰了。
<A_object id=1>
<content_of_a>
</stuff>
</stuff>
</stuff>
</content_of_a>
</A_object>
<A_object id=2>
<content_of_a>
</stuff>
</stuff>
</stuff>
</content_of_a>
</A_object>