我有一个要求,我在mule flow中针对xml有效负载运行xPath评估器。此xPath评估程序可以返回单个或多个值。我需要将这些值存储在流变量中,并在以后的流程中使用。有人可以帮我实现这些变化吗?
感谢你的帮助。
由于
答案 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>