ウェブを検索し、stackoverflow を上下に検索しました。解決策はありません。純粋な xslt here内でこれを行う方法を見つけましたが。
しかし問題は、結果の xml が数百 MB の大きさになることです。したがって、これを Java の SAX で行う必要があります。(xsltでタグ付けしましたが、xsltソリューションは使用しないでください;-))
もっと詳しく説明しましょう。解析する必要がある複数の xml ファイル (InputSteam が望ましい) がいくつかあります。ファイルまたは InputStream は次のようになります
入力ストリーム1
<root>
<doc>
<tag>test1</tag>
</doc>
<doc>
<tag>test2</tag>
</doc>
...
</root>
入力ストリーム 2
<root>
<doc>
<tag>test3</tag>
</doc>
<doc>
<tag>test4</tag>
</doc>
...
</root>
inputstream1+inputstream2+...+inputstreamN =結果の xml . 次のようになります
<root>
<doc>
<tag>test1</tag>
</doc>
<doc>
<tag>test2</tag>
</doc>
...
<doc>
<tag>test3</tag>
</doc>
<doc>
<tag>test4</tag>
</doc>
...
</root>
誰かがこれに対する解決策またはリンクを持っていますか? これはカスタム InputSource を実装することで可能ですか、それともカスタム ContentHandler を使用する必要がありますか? または、これはjoost/stxで可能ですか?
ContentHandler を使用できれば、いくつかの小さな変換を適用できるという利点があります (これは既に実装しています)。しかし、問題は、複数のファイルまたは InputStream を InputSource として渡す方法がわからないことです。
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.setContentHandler(customHandler);
xmlReader.parse(getInputSource()); // only one InputStream possible
または、ContentHandler 内で直接 InputStreams を解析する必要がありますか?