2013-10-24 113 views
0

我與WebRequest的提交數據,我收到了WebResponse的以下內容:如何解析C#中多個節點的XML字符串?

<tss_loan_response> 
    <signature> 
     <data name="page">app_completed</data> 
     <data name="site_type">soap_pw</data> 
     <data name="license_key">lic.olp.bb.sample</data> 
     <data name="promo_id">99999</data> 
     <data name="promo_sub_code">test</data> 
     <data name="unique_id">b315782da42f23edec5c32adfe39a457</data> 
     <data name="environment">testing</data> 
    </signature> 
    <errors /> 
     <content> 
      <section> 
       <url>https://rcredirect.tridentsecuredata.com/b315782da42f23edec5c32adfe39a457</url> 
      </section> 
     </content> 
    <collection> 
     <data name="client_url_root">SAMPLE.COM</data> 
     <data name="client_ip_address">127.0.0.1</data> 
     <data name="customer_id">D6FC0D89-8741-484D-9E76-3E8264702059</data> 
    </collection> 
</tss_loan_response> 

後,我得到的迴應,我想每個XML標籤/線的值設置爲一個變量(這樣我就可以在完成讀取文件後使用它們)。

我一直在嘗試一切,似乎無法得到它的工作。有什麼想法嗎?

我正在使用ASP.NET和C#。

+1

讀入一個對象,一個字典,等等。讓我們看看你一直想什麼...... –

+0

我可能得到最接近這個:'VAR的查詢= xdoc.Descendants( 「簽名」) \t \t \t \t \t \t \t .Elements() \t \t \t \t \t \t \t .ToDictionary(R => r.Attribute( 「名稱」)值, \t \t \t \t \t \t \t \t \t \t R => r.Value);' – user2059225

回答

0

這是我做過什麼來得到它的工作:

var signatureElement = XElement.Parse(responseFromServer).Descendants("signature") 
          .Elements() 
          .ToDictionary(r => r.Attribute("name").Value, 
             r => r.Value); 

string pageXML = signatureElement.FirstOrDefault(p => p.Key == "page").Value; 
+0

因爲'signatureElement'是'Dictionary '你不必使用'FirstOrDefault'來獲得''Page''元素。使用標準索引符號:'string pageXML = signatureElement [「page」];' – MarcinJuraszek

+0

**真棒!! **你是個天才!謝謝你的幫助! – user2059225