使用xpath进行拆分时,骆驼拆分器实际上对XML文档有什么作用?

时间:2018-07-18 11:01:11

标签: xpath apache-camel

我有一个带有订单和行数的文档。我需要将订单分解为几行,以便将骆驼分割器设置为xpath,并将订单行作为其值。效果很好。

但是,我接下来要做的是订单行的元素,这是我想要的,但是在转换时,我需要来自order元素的信息-但是如果我尝试在拆分后通过xpath获取父元素,这是行不通的。

Camel是否创建xpath表达式返回的节点的副本,还是返回父文档中的节点列表?如果是前者,我可以做到后者吗?如果是后者,为什么“ ../*”表达式不返回任何内容?

谢谢!

磁带。

1 个答案:

答案 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>