Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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中使用StAX动态拆分xml,替代方案?_Java_Xml_Inputstream_Stax - Fatal编程技术网

在Java中使用StAX动态拆分xml,替代方案?

在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

因为在有限的(RAM)环境中处理大型xml文件可能是一个问题,特别是使用java和被迫使用Jsoup作为解析器,所以我决定使用SAX和StAX进行“动态处理”:经过多次尝试,我最终得到了我在internet上找不到的代码,因为它非常通用

想法很简单,您有一个已经在运行中解压缩的inputStream,其中包含一个XML文件,您需要在这个XML文件中拆分或(分块)一个特定对象及其所有内部XML代码,并将该字符串提供给其他解析器(如Jsoup)

当然,我的第一次尝试是使用Jsoup本机inputStream读取器,但它实际上下载了完整的XML文件,然后使用大量RAM对其进行解析

因此,我的代码看起来是这样的,我的单元测试工作得很好,对我来说一切都正常,但问题是,有时,在其他服务器中使用一些XML时,它只提取(奇数)对象,所以是第一个对象,然后是第三个对象,依此类推,而不是(偶数)对象

遗憾的是,我不能提供真正可以工作的xml示例,但正如您所看到的,它应该适用于任何一个示例

示例:输入=选择器“A_对象”


示例:输出

第一:

<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>