java 合并多个大文件,java – 将多个大型xml文件高效合并为一个

我搜索了网络,我上下搜索stackoverflow.没有解决方案.虽然我在纯xslt here中找到了解决方法.

但问题是产生的xml将是几百MB大.所以我必须用Java中的SAX来做这件事. (请不要xslt解决方案,虽然我用xslt标记它;-))

让我更详细地解释一下.我有几个应该解析的多个xml文件(最好是InputSteam).文件或InputStream看起来像

inputstream1

test1

test2

...

inputstream2

test3

test4

...

inputstream1 inputstream2 … inputstreamN =结果xml.它看起来像

test1

test2

...

test3

test4

...

有人有解决方案或链接吗?这是通过实现自定义InputSource还是应该使用自定义ContentHandler?或者这可能是joost/stx吗?

如果我可以使用ContentHandler那么好的事情就是我可以应用一些小的转换(我已经实现了这个).但问题是我不知道将多个文件或InputStream作为InputSource传递的方法:

XMLReader xmlReader = XMLReaderFactory.createXMLReader();

xmlReader.setContentHandler(customHandler);

xmlReader.parse(getInputSource()); // only one InputStream possible

或者我应该直接在ContentHandler中解析InputStreams?

解决方法:

我自己没有这样做,但我记得看到一篇IBM developerworks文章看起来很容易.

这是StAX而不是SAX.我不确定当前的JDK是否包含StAX.如果没有,你可以从http://stax.codehaus.org/获得它

标签:java,xml,xslt,sax,stx

来源: https://codeday.me/bug/20190701/1343516.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值