2015-09-10 79 views
-1

我想阅读加拿大银行的XML响应以获得各种货币的收盘汇率。 但是他们有很复杂的XML响应,你可以在如何使用C#读取复杂的XML响应#

访问www.bankofcanada.ca/stats/assets/rates_rss/closing/en_all.xml检查

我试图解析XML我的旧方式,但这项工作的只有简单的XML即精细

var url ="http://www.bankofcanada.ca/stats/assets/rates_rss/closing/en_all.xml"; 
     var uploadResult = CurrencyAPI.TriggerApiAction(url); 
     XDocument xDoc = XDocument.Parse(CurrencyAPI.backstr); 



     foreach (var download in xDoc.Descendants("cb:exchangeRate")) 
     { 
      a1 = download.Element("cb:value").Value; 
      a2 = download.Element("cb:baseCurrency").Value; 
      a3 = download.Element("cb:targetCurrency").Value; 
     } 

请帮我这个 感谢

回答

0
XNamespace cb = "http://www.cbwiki.net/wiki/index.php/Specification_1.1"; 
foreach (var download in xDoc.Descendants(cb+"exchangeRate")) 
{ 
    var a1 = download.Element(cb+"value").Value; 
    var a2 = download.Element(cb+"baseCurrency").Value; 
    var a3 = download.Element(cb+"targetCurrency").Value; 
} 

或者更好:

XNamespace cb = "http://www.cbwiki.net/wiki/index.php/Specification_1.1"; 
foreach (var download in xDoc.Descendants(cb+"exchangeRate")) 
{ 
    var a1 = (decimal)download.Element(cb+"value"); 
    var a2 = (string)download.Element(cb+"baseCurrency"); 
    var a3 = (string)download.Element(cb+"targetCurrency"); 
} 
+0

谢谢你的工作 –