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