正如标题所暗示的那样,我有一个带有标题的路由,其中包含一些类似于以下片段的 xml 作为字符串;
<files>
<image_file1>image.png</image_file1>
<image_file2>image.png</image_file2>
</files>
我正在尝试做的是使用以下内容通过 xpath 拆分。如下所示,当 xml 是正文的一部分时,一切运行良好:-
from(myIncomingQueue)
.convertBodyTo(String.class, "utf-8")
.split(xpath("//*[local-name()='files']/*"))
.setHeader("FilePropertyToRetrieve", xpath("local-name(//*)").stringResult())
.to(myFileDownloadQueue)
.routeId("COMMON-CON-Attachment_Router-Id");
我找到了使用以下方法的解决方案:-
from(myIncomingQueue)
.setBody(header("myHeaderWithXml"))
.convertBodyTo(String.class, "utf-8")
.split(xpath("//*[local-name()='files']/*"))
.setHeader("FilePropertyToRetrieve", xpath("local-name(//*)").stringResult())
.setBody(header("CamelOriginalBody"))
.to(myFileDownloadQueue)
.routeId("COMMON-CON-Attachment_Router-Id");
但是仍然想知道出于学习目的,是否有办法做到这一点而不将标题移动到正文中然后再反转?