Java 使用.Split().tokenizeXML()在camel中拆分xml文件?
如何使用.Split().tokenizeXML()在camel中拆分xml文件?我已经附上了代码片段。我不知道我哪里做错了。 这是我的意见Java 使用.Split().tokenizeXML()在camel中拆分xml文件?,java,xml,split,apache-camel,dsl,Java,Xml,Split,Apache Camel,Dsl,如何使用.Split().tokenizeXML()在camel中拆分xml文件?我已经附上了代码片段。我不知道我哪里做错了。 这是我的意见 <Record> <DataFile xmlns="Created"> </DataFile> <DataFile xmlns="Updated"> </DataFile> <DataFile xmlns="Deleted"> </DataFile>
<Record>
<DataFile xmlns="Created">
</DataFile>
<DataFile xmlns="Updated">
</DataFile>
<DataFile xmlns="Deleted">
</DataFile>
</Record>
我的预期输出是。。。
直接:创建的应用程序应拆分并仅使用此应用程序
<DataFile xmlns="Created">
</DataFile>
<DataFile xmlns="Updated">
</DataFile>
<DataFile xmlns="Deleted">
</DataFile>
直接:应拆分并仅使用此更新
<DataFile xmlns="Created">
</DataFile>
<DataFile xmlns="Updated">
</DataFile>
<DataFile xmlns="Deleted">
</DataFile>
和直接:删除应拆分并仅使用此选项
<DataFile xmlns="Created">
</DataFile>
<DataFile xmlns="Updated">
</DataFile>
<DataFile xmlns="Deleted">
</DataFile>
不能使用tokenizeXml按命名空间进行拆分。您需要自己分割文件,或者编写一些可以按名称空间分割的代码。我不知道如何在XPath中获取“xmlns”属性的值,因为“xmlns”是名称空间属性。如果您可以将该属性的名称更改为例如“attribute”,则可以使用类似以下内容:
首先将xml拆分为元素列表“DataFile”,然后使用基于内容的路由,使用“attribute”的值(“attribute”,因为我不知道如何在XPath中获取“xmlns”属性的值-您可以自己找到并尝试)
谢谢在camel dsl中还有其他选项可以分割这种XML吗?