【问题标题】:Using a mule variable value inside an xpath expression to query a repeating XML node在 xpath 表达式中使用 mule 变量值来查询重复的 XML 节点
【发布时间】:2014-10-15 13:58:18
【问题描述】:

让我们将示例 XML 设置为:

<test>
    <randomtag>abc</randomtag>
    <person>
        <name>john</name>
    </person>
    <person>
        <name>peter</name>
    </person>
</test>

目标: 我想使用Mule ForEach 组件调用一个记录器来输出如下: 约翰 彼得

需要的Xpath如下:

#[xpath("//person[1]/name/text()")] 给约翰

#[xpath("//person[2]/name/text()")] 给彼得

问题:如何使索引12 的值动态化?

我正在尝试类似的东西: #[xpath("//person[flowVars.forEachCounterVariable]/name/text()")] 但没用。

PS:相似但不一样:using mule variable value in xpath expression

【问题讨论】:

    标签: xml xpath mule


    【解决方案1】:

    尝试以下方法:-

     <splitter evaluator="xpath" expression="/test" doc:name="Splitter_For_MultipleSameNodes"/>
        <mulexml:dom-to-xml-transformer doc:name="DOM to XML"/>
        <foreach collection="#[xpath('//test')]" doc:name="For Each">
        <logger message="ID:- #[xpath('person/name/text()')] " level="INFO" doc:name="Logger"/>
         </foreach>   
    

    【讨论】:

    • 谢谢 Anirban - 感谢您的意见
    • 快速问题:为什么你预先使用 而不是直接进入
    • 您使用拆分器在 /test 上“拆分” - 这是根节点......这背后的原因是什么?
    【解决方案2】:

    像字符串一样连接它...

    #[xpath('//person['+flowVars.forEachCounterVariable+']/name/text()')]

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      相关资源
      最近更新 更多