我有这个 Mule 流程:
<file:connector name="input" doc:name="input" autoDelete="false" />
<flow name="flow1">
<file:inbound-endpoint connector-ref="input" responseTimeout="10000" doc:name="input" path="C:\test" pollingFrequency="100000" />
<file:filename-wildcard-filter pattern="prod.xml" />
<set-variable variableName="tempid" value="150" doc:name="Variable" />
<foreach doc:name="For Each" collection="#[xpath3('//marketingdetailslist/marketdetails/*', payload, 'NODESET' )]">
<enricher source="#[flowVars.tempid]" target="#[xpath3('//marketdetails/target')]" >
<logger message="inside enricher ~~~~~#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/>
</enricher>
</foreach>
<logger message="after enrichment response~~~~~~.......#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/>
</flow>
它接收此 XML 作为输入:
<marketingdetailslist>
<marketdetails>
<Jan>
<target>100</target>
<productname>Electronics</productname>
</Jan>
<Feb>
<target>50</target>
<productname>Woodenitems</productname>
</Feb>
</marketdetails>
</marketingdetailslist>
这将是预期的输出,值发生变化:
<marketingdetailslist>
<marketdetails>
<Jan>
<target>150</target>
<productname>Electronics</productname>
</Jan>
<Feb>
<target>150</target>
<productname>Woodenitems</productname>
</Feb>
</marketdetails>
</marketingdetailslist>
我无法获得预期的输出。为了实现这一目标,我需要对流程进行哪些更改?
最佳答案
您似乎正在尝试模仿 XSL-T Transformer具有一组消息处理器。您可能会成功,但最好使用 XSL-T,因为它是为执行此类转换而设计的。
关于xml - Mule splitter,使用 xpath3 表达式的 foreach 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217166/