2016-04-27 19 views
1

以下のメッセージで、2つの 'invunique'ノードをパラメータvParamに設定します。 私は簡単に複数の値を設定するXPath

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

を使用して「cvalue」を設定することができます。しかし、私は、任意のアイデアを1つのXPath文のノードのinvunique '2を設定する良い方法を見つけていませんでしたか?

<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> 

答えて

2

限り、私は(私は残念ながら、これをテストしていません)知っているように、XPath関数「セッター」は唯一の最初の試合を更新することができるようになります。 2つ目のcvalueノードがある場合は、最初のノードだけが更新されます。

2つのステートメントの代わりに1つのステートメントで両方を更新したいと思う理由は何ですか?

これが定期的なノードの場合は、代わりにマッピングまたはヘルパークラスを使用することをお勧めします。

+0

2つのステートメントは私が推測するでしょう。私は、変数を使用してマップを必要とせずにメッセージを更新するために、変数を設定するためにC#ユーティリティを使用しています。 xpathの構造が第2番目のinvuniqueの値を設定するのはどういうのだろうか? – DarkW1nter

+0

それを働かせました、ありがとう – DarkW1nter

関連する問題