【问题标题】:Mule loop through all nodes of xml payloadMule 循环遍历 xml 有效负载的所有节点
【发布时间】:2016-10-15 16:15:02
【问题描述】:

在 Mule 中循环遍历 xml 有效负载中的所有节点并获取每个节点的值的最简单方法是什么

【问题讨论】:

    标签: mule mule-el


    【解决方案1】:

    不确定我是否理解正确。你想对每个值做什么?

    您可以在 mule 中使用 xpath3() 方法从有效负载中获取 xml 元素。这是一个使用 xpath3 获取 xml 元素值的示例流程:

    <flow name="print-payloadFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
        <set-payload value="#['&lt;note&gt;&lt;to&gt;Tove&lt;/to&gt;&lt;from&gt;Jani&lt;/from&gt;&lt;heading&gt;Reminder&lt;/heading&gt;&lt;body&gt;Dont forget me this weekend!&lt;/body&gt;&lt;/note&gt;']" doc:name="Set Payload"/>
        <logger message="#[xpath3('//from')]" level="INFO" doc:name="Logger"/>
    </flow>
    

    无法粘贴整个 mule 流程,因为我没有发布链接的声誉,所以我不允许发布整个 xml 文件 ;-)

    如果你想测试它,只需创建一个新的 mule 流并将这个 sn-p 粘贴到它。

    【讨论】:

    • 非常感谢您的回复。我想查看该节点的值是否与特定字符串匹配(例如,'node_to_be_updated'),如果匹配,则向该节点添加一些属性,该节点具有该特定字符串作为值。
    【解决方案2】:

    由于您没有正确地提出您的全部要求,已经列出了各种解决方案,请参考下面的链接。

    请参阅下面的链接,这些链接将为您提供足够的洞察力来解决您的问题。

    Mule Using XPath to return a value out of an Payload

    foreach in xml-node return null in mule esb

    How to extract values from an xml list in Mule foreach

    How to extract a node value from an xml in Mule

    MULE: xpath expression not extracting values from payload

    【讨论】:

    • 非常感谢您的指点。我的实际要求是在传入的 xml 有效负载中搜索特定字符串,并向所有将特定字符串作为值的节点添加一些属性。我将浏览建议的链接,看看我是否可以使用这些技术来达到预期的效果。
    猜你喜欢
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 2013-02-16
    相关资源
    最近更新 更多