Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XPath设置多个值_Xml_Xpath_Biztalk_Biztalk 2013 - Fatal编程技术网

Xml XPath设置多个值

Xml XPath设置多个值,xml,xpath,biztalk,biztalk-2013,Xml,Xpath,Biztalk,Biztalk 2013,在下面的消息中,我想将2个“invunique”节点设置为参数vParam。 我可以使用 xpath(MyMsg.Body, "//*[local-name()='cvalue']") = vParam; 但我还没有找到一种在1个XPath语句中设置2个“invunique”节点的好方法,有什么想法吗 <ns0:newcase xmlns:ns0="http://MyNamespace/v1-0"> <ns0:caseheader> <ns0:caseuniq

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

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>

10
10
10
20
cvalue_0
otherdesc_0
据我所知(不幸的是,我没有测试过),xpath函数“setter”只能更新第一个匹配项。如果您有第二个cvalue节点,则只会更新第一个节点

你有什么理由希望在一条语句中更新这两条语句,而不是在两条语句中更新


如果这是一个重复出现的节点,我建议使用一个映射或助手类来代替。

2个语句就可以了。我正在使用一个c#实用程序来设置变量,然后希望在不需要映射的情况下使用这些变量来更新消息。我可以问xpath的结构是什么来设置唯一值吗?