XPath设置多个值

时间:2016-04-27 14:49:15

标签: xml xpath biztalk biztalk-2013

在下面的消息中,我想将2个'invunique'节点设置为参数vParam。 我可以使用

轻松设置'cvalue'
xpath(MyMsg.Body, "//*[local-name()='cvalue']") = vParam;

但是我没有找到一种在1 XPath语句中设置2'invunique'节点的好方法,任何想法?

<ns0:newcase xmlns:ns0="http://MyNamespace/v1-0">
<ns0:caseheader>
  <ns0:caseunique>10</ns0:caseunique> 
</ns0:caseheader>
<ns0:financials>
 <ns0:invoices>
   <ns0:invoice>
       <ns0:caseunique>10</ns0:caseunique> 
       <ns0:invunique>10</ns0:invunique> 
       <ns0:invudfs>
         <ns0:invudf>
           <ns0:invunique>20</ns0:invunique> 
           <ns0:cvalue>cvalue_0</ns0:cvalue> 
           <ns0:otherdesc>otherdesc_0</ns0:otherdesc> 
         </ns0:invudf>
       </ns0:invudfs>
  </ns0:invoice>
 </ns0:invoices>
</ns0:financials>
</ns0:newcase>

1 个答案:

答案 0 :(得分:2)

据我所知(我还没有测试过),xpath函数'setter'只能更新第一个匹配。如果您有第二个cvalue节点,则只更新第一个cvalue节点。

您是否希望在一个语句中更新两个语句而不是两个语句?

如果这是一个重复节点,我建议改为使用映射或帮助类。