2017-04-10 11 views
1

SOAPメッセージから次の応答があります。 REQUEST_STATUSタグとRESULTタグから値を読み取り、データベース内のテーブルを更新するためにデータテーブルに配置する必要があります。C#WPFを使用してSOAP応答を読み取る

私はこれを初めてやっていますように助けてください。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <CalculationResponse xmlns="http://www.someurl.com/"> 
     <OUTPUT> 
     <REQUEST_STATUS> 
      <IS_SUCCESS>true</IS_SUCCESS> 
      <IS_PARTIAL_SUCCESS>true</IS_PARTIAL_SUCCESS> 
     </REQUEST_STATUS> 
     <RESULT> 
      <Value> 
       <inset1>1<inset1> 
     </Value> 
     <Value> 
       <inset2>2<inset2> 
     </Value> 
     </RESULT>.... 

C#のコードは、私が試した:

XDocument doc = XDocument.Load(Environment.CurrentDirectory + "\\out.xml"); 
XNamespace ns = @"http://www.someurl.com/"; 
bool validation = false; 
var root = doc.Descendants("CalculationResponse").Elements("OUTPUT").Elements("REQUEST_STATUS"); 
var valuestr = from r in root.Elements("IS_SUCCESS") 
      select r.Value; 
validation = (valuestr.ToString()=="true")?true:false; 

私はいつもvaluestrを取得するには、コレクションには結果がありません。ここで

+0

あなたの質問は何ですか? –

+0

値を読み込んでデータテーブルに入れるためにC#ロジックが必要です。 – venturert

+0

OK、ありがとうございます。これまで何をやろうとしていますか?どのような問題が発生しましたか? –

答えて

0

は、私はそれを達成するために作られたコードは次のとおりです。

C#コード:

XNamespace ns = @"http://www.someurl.com"; 
bool validation = false; 
var parent = doc.Root.Descendants(ns + "CalculationResponse").Descendants(ns + "OUTPUT"); 
var valuestr = (from r in parent.Descendants(ns + "REQUEST_STATUS").Descendants(ns + "IS_SUCCESS") 
       select r.Value).ToList(); 

validation = (valuestr[0] == "true") ? true : false; 
関連する問題