我們有一個應用程序,用於處理非常大的xml文件(3GB +)。爲了分割,我們使用Tokenizer。我們收到的XML具有不同的名稱空間前綴或根本不使用前綴。 Tokenizer可以處理這個問題嗎? 我唯一發現的是繼承了inheritNamespaceTagName屬性的默認命名空間,但不幸的是,當使用命名空間前綴時,它不起作用。是否有可能使Tokenizer名稱空間可識別(使用分離器時)
感謝您的幫助!
示例1:
<foo:orders xmnls:foo="http://foo.com">
<foo:order id="1">Camel in Action</order>
<foo:order id="1">ActiveMQ in Action</order>
<foo:order id="1">DSL in Action</order>
</foo:orders>
示例2:
<bar:orders xmnls:foo="http://foo.com">
<bar:order id="1">Camel in Action</order>
<bar:order id="1">ActiveMQ in Action</order>
<bar:order id="1">DSL in Action</order>
</bar:orders>
我們的路線:
<route id="orderProcessorRoute">
<from uri="file:process-xml?delete=true"/>
<split streaming="true">
<tokenize token="order" xml="true"/>
<to uri="bean:xmlParseBean"/>
<to uri="vm:orderAggregator"/>
</split>
<to uri="file:backup"/>
</route>
您應該查看擴展vtd-xml並使用它來將XML文檔分割爲最大256 GB的大小。 –