我搜索了网络,我上下搜索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