C# 使用Silverlight/Windows Phone将XML解析为对象数组

C# 使用Silverlight/Windows Phone将XML解析为对象数组,c#,xml,silverlight,windows-phone-7,linq-to-xml,C#,Xml,Silverlight,Windows Phone 7,Linq To Xml,我通过WebClient方法调用restful服务以返回一些XML。然后,我想通过XML进行解析,从每个节点提取特定字段,并将其转换为数组 我有检索XML并将其填充到列表框中的代码。由于某些原因,我无法解决如何将其转换为对象数组 迄今为止的代码: private void button1_Click(object sender, RoutedEventArgs e) { WebClient wc = new WebClient(); wc.Down

我通过WebClient方法调用restful服务以返回一些XML。然后,我想通过XML进行解析,从每个节点提取特定字段,并将其转换为数组

我有检索XML并将其填充到列表框中的代码。由于某些原因,我无法解决如何将其转换为对象数组

迄今为止的代码:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        WebClient wc = new WebClient();
        wc.DownloadStringCompleted += HttpsCompleted;
        wc.DownloadStringAsync(new Uri(requestString));
    }

    private void HttpsCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);

            var data = from query in xdoc.Descendants("entry")
                       select new DummyClass
                       {
                           Name = (string)query.Element("title"),
                           Kitty = (string)query.Element("countryCode")
                       };
            listBox1.ItemsSource = data;
        }
    }

}
如何将每个节点转换为数组中的对象

非常感谢! 威尔

编辑:XML如下所示:


EN
柏林Schönhauser Allee站
柏林Schönhauser Allee是柏林Prenzlauer Berg区的一个火车站。它位于柏林U-Bahn线和灵巴恩(柏林S-Bahn)线上。由A.Grenander于1913年建造,开封为“Bahnhof Nordring”(…)
判定元件
54
52.5494
13.4139
http://en.wikipedia.org/wiki/Berlin_Sch%C3%B6nhauser_Allee_station
93
0.2807
这是怎么回事

// convert IEnumerable linq query to an array
var array = data.ToArray(); // could also use .ToList() for a list
// access like this
MessageBox.Show(array[0].Kitty);
这将从linq查询生成的
IEnumerable
中为您提供一个
DummyClass
对象数组


此外,甚至可能不需要阵列。如果您只需要对数据进行迭代,只需对
数据
对象执行
foreach

创建XML节点的实体,并将其反序列化为实体类的IEnumerable。您的XML看起来像什么?添加了有关XML结构的额外信息@拉姆普林-不知道你的评论是什么意思…是的-这就成功了。有时候很容易。。。谢谢,内特。
// convert IEnumerable linq query to an array
var array = data.ToArray(); // could also use .ToList() for a list
// access like this
MessageBox.Show(array[0].Kitty);