xml - Mule splitter,使用 xpath3 表达式的 foreach 集合

标签 xml foreach mule

我有这个 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/

相关文章:

database - 如何处理来自 DB : Mule ESB 的 300k 条记录

java - Android Studio 中 Seekbars( View )的径向布局

foreach - 如何使用foreach和fork并行执行某项操作?

xml - JAXB 解码到实体

c# - 传递 DataGridViewRow 作为引用

php - 循环更新sql中的多行

java - Mule ESB + TOMCAT Web 应用集成

http - 如何编辑默认的 Mule 错误消息..?

java - JAXB:如何获取包装类型的值(value)?

javascript - 请,需要帮助循环 Javascript 事件