我们有一个应用程序,我们正在处理非常大的 xml 文件 (3GB+)。对于拆分,我们使用 Tokenizer。我们收到的 xml 有不同的命名空间前缀或根本不使用前缀。Tokenizer 是否可以处理这个问题?我发现的唯一一件事是使用 inheritNamespaceTagName 属性继承默认命名空间,但不幸的是,当使用命名空间前缀时它不起作用。
谢谢你的帮助!
样品 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>