Java 使用.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>

如何使用.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> 

直接:应拆分并仅使用此更新

<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吗?