代码之家  ›  专栏  ›  技术社区  ›  Screwtape

当使用xpath拆分xml文档时,camel splitter实际对xml文档做什么?

  •  0
  • Screwtape  · 技术社区  · 8 年前

    我有一份有订单和几行的文件。我需要将顺序分成几行,这样我就有了一个设置为xpath的camel拆分器,并将顺序行作为其值。这很管用。

    但是,我得到的是order行的一个元素,这是我想要的,但是当转换它时,我需要order元素的信息——但是如果我尝试在拆分之后通过xpath获取父元素,这就不起作用。

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

    谢谢!

    螺旋胶带。

    1 回复  |  直到 8 年前
        1
  •  2
  •   TacheDeChoco    8 年前

    查看使用标记赋予器时可用的拆分选项: 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>