如何在mule esb中使用xpath3表达式替换值 100 毛巾 毛巾 100 10 101 枕头 枕头 500 5.

如何在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

我想使用xpath3表达式拆分上述xml,并替换validlity值。在此之后,我希望上面的所有xml值都被替换。我尝试过使用xpath,但效果很好我的要求是坚持使用xpath3 mule表达式

 <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')]