世界天气在线 - 无法从<request> </request>检索信息

时间:2013-03-21 23:50:54

标签: c# api xml-serialization windows-phone weather-api

我是Windows Phone开发的新手,最近开始尝试创建天气应用程序,我使用的是来自World Weather Online的API(http://www.worldweatheronline.com/)。

我从网站(http://free.worldweatheronline.com/feed/weather.ashx?q=paris&format=xml&num_of_days=5&key=xxxxxxxx)检索了以下示例数据:

<?xml version="1.0" encoding="UTF-8"?>
<data>
  <request>
    <type>City</type>
    <query>Paris, France</query>
  </request>
  <current_condition>
    .......
  </current_condition>
  <weather>
    .......
  </weather>
  <weather>
    .......
  </weather>
</data>

我尝试解析xml并将它们放在C#中的数据类中。以下是我的代码:

XDocument doc = XDocument.Parse(e.Result);
var data1 = from q in doc.Descendants("result")
            select new RequestData
            {
               type = (string)q.Element("type"),
               query = (string)q.Element("query")
            }

这是我的数据类:

public class RequestData
{
  public string type {get; set;}
  public string query {get; set;}
}

但执行上述代码后,没有错误(好),但data1没有数据。 我尝试了doc.Descendants("current_condition)doc.Descendants("weather"),我可以将数据输入data1,只有doc.Descendants("result")没有给我任何结果。

任何人都知道为什么? 感谢。

1 个答案:

答案 0 :(得分:0)

好吧,我的坏,这是我自己的错误,它应该是“请求”,而不是“结果”。

应该是

doc.Descendants("request")

doc.Descendants("result")