如何在mule esb中使用xpath3表达式替换值 100 毛巾 毛巾 100 10 101 枕头 枕头 500 5.
我想使用xpath3表达式拆分上述xml,并替换validlity值。在此之后,我希望上面的所有xml值都被替换。我尝试过使用xpath,但效果很好我的要求是坚持使用xpath3 mule表达式如何在mule esb中使用xpath3表达式替换值 100 毛巾 毛巾 100 10 101 枕头 枕头 500 5.,mule,Mule,我想使用xpath3表达式拆分上述xml,并替换validlity值。在此之后,我希望上面的所有xml值都被替换。我尝试过使用xpath,但效果很好我的要求是坚持使用xpath3 mule表达式 <babyproducts> <products> <product1> <productid>100</productid> <produ
<babyproducts>
<products>
<product1>
<productid>100</productid>
<productname>towel</productname>
<desc>towel</desc>
<discount>100</discount>
<validlity>10</validlity>
</product1>
<product2>
<productid>101</productid>
<productname>pillow</productname>
<desc>pillow</desc>
<discount>500</discount>
<validlity>5</validlity>
</product2>
</product>
</babyproducts>
以上是我使用xpath的mule流。我的团队希望使用xpath3(最新版本)完成此任务
我的预期输出如下,新的有效性值为50(来自流量变量)
100
毛巾
毛巾
100
50
101
枕头
枕头
500
50
首先,您的XML示例无效。存在未关闭的标记,并且您的xpath也与示例的结构不匹配
其次,我只能展示xpath表达式的等效xpath3表达式,因为我已经在您的其他问题中回答了如何更新XML节点
<babyproducts>
<products>
<product1>
<productid>100</productid>
<productname>towel</productname>
<desc>towel</desc>
<discount>100</discount>
<validlity>50</validlity>
</product1>
<product2>
<productid>101</productid>
<productname>pillow</productname>
<desc>pillow</desc>
<discount>500</discount>
<validlity>50</validlity>
</product2>
</product>
</babyproducts>
变成:
<splitter evaluator="xpath" expression="/babyproducts/products" doc:name="Splitter" />
#[xpath('/products/validlity').text]
默认情况下,不需要.text返回Stirng值。此处的更多信息:可能与否重复这是不同的情况,因为我的技术管理团队坚持使用xpath3 mule表达式。不,这是针对其他需求的,特别是使用xpath3,那么您可以发布现有的xpath配置吗?我在问题中更新了mule流和预期输出。嗨,我没有使用xpath3获得任何预期的上述输出(添加在问题中)。有人分享xapth3流程吗?谢谢。对于mule来说还是很新的,所以在找到引用xpath的在线资源并希望确保我的代码更适合MULE4之后,这非常有帮助
<splitter expression="#[xpath3('/babyproducts/products/*', payload, 'NODESET')]"
doc:name="Splitter" />
#[xpath('/products/validlity').text]
#[xpath3('/products/validlity')]