タイトルが示すように、次のスニペットに似た 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");
しかし、ヘッダーを本文に移動せずにそれを行う方法があれば、学習目的で知りたいですか?その後元に戻しますか?