在xpath表达式中使用mule变量值来查询重复的XML节点

时间:2014-10-14 14:31:10

标签: xml xpath mule

让我们将示例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()")]

问题:如何制作索引的值1&amp; 2动态?

我正在尝试这样的事情: #[xpath("//person[flowVars.forEachCounterVariable]/name/text()")]但没有效果。

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

2 个答案:

答案 0 :(得分: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>   

答案 1 :(得分:0)

将它连接成一个字符串......

<强>#[的xpath( '//人[' + flowVars.forEachCounterVariable + '] /名称/文本()')]

相关问题