0

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

感谢您对此的帮助。

谢谢

4

1 回答 1

1

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

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

您还可以使用 Mule 表达式语言来创建动态 XPath 表达式:

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

但是,这对于复杂的表达式可能会有些混乱,因此我创建了自己的动态 XPath 转换器:

<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>
于 2014-03-14T14:48:55.310 回答