【问题标题】:How to read Complex XML Response using C# [duplicate]如何使用 C# 读取复杂的 XML 响应 [重复]
【发布时间】:2015-09-10 15:58:37
【问题描述】:

我想阅读加拿大银行的 XML 响应以获取每种货币的收盘价。 但是它们有非常复杂的 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;
        }

请帮我解决这个问题 谢谢

【问题讨论】:

    标签: c# xmlreader


    【解决方案1】:
    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");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      相关资源
      最近更新 更多