mule流中的XPATH返回多个值

时间:2014-03-06 03:00:55

标签: mule mule-el

我有一个要求,我在mule flow中针对xml有效负载运行xPath评估器。此xPath评估程序可以返回单个或多个值。我需要将这些值存储在流变量中,并在以后的流程中使用。有人可以帮我实现这些变化吗?

感谢你的帮助。

由于

1 个答案:

答案 0 :(得分:1)

要从XML文档中提取值,请使用XPath提取程序。

<mulexml:xpath-extractor-transformer expression="/a:my/b:xpath/text()"/>

您还可以use Mule Expression Language创建动态XPath表达式:

<expression-transformer mimeType="text/xml" evaluator="xpath" expression="//school/day[@date= #[function:datestamp:yyyy-MM-dd] ]/name
"/>

然而,对于复杂的表达式,这可能会有些混乱,所以我创建了自己的dynamic XPath transformer

<dx:dxpath expression="/b:team[name = $teamName]/b:player[b:name = $playerName]/b:goals/text()">
  <dx:variable key="playerName" value="#[header:invocation:playerName]"/>
  <dx:variable key="teamName" value="#[header:invocation:teamName]"/>
  <!-- unlimited number of variables -->
</dx:dxpath>

这对眼睛来说更容易。

然后用一个ericher包裹你的流:

<enricher target="#[variable:myData]">
    <processor-chain>
        <!-- your flow here -->
    </processor-chain>
</enricher>