我有一个带有订单和行数的文档。我需要将订单分解为几行,以便将骆驼分割器设置为xpath,并将订单行作为其值。效果很好。
但是,我接下来要做的是订单行的元素,这是我想要的,但是在转换时,我需要来自order元素的信息-但是如果我尝试在拆分后通过xpath获取父元素,这是行不通的。
Camel是否创建xpath表达式返回的节点的副本,还是返回父文档中的节点列表?如果是前者,我可以做到后者吗?如果是后者,为什么“ ../*”表达式不返回任何内容?
谢谢!
磁带。
答案 0 :(得分:2)
查看使用令牌生成器时可用的拆分选项: http://camel.apache.org/splitter.html
您有四种不同的模式(i,w,u,t),而“ w”则保持祖先上下文。在这种情况下,父节点(=您显然需要的东西)将在每个子消息中重复
默认:
<m:order><id>123</id><date>2014-02-25</date></m:order>
“ w”模式:
<m:orders>
<m:order><id>123</id><date>2014-02-25</date>...</m:order>
</m:orders>