C# 使用Silverlight/Windows Phone将XML解析为对象数组
我通过WebClient方法调用restful服务以返回一些XML。然后,我想通过XML进行解析,从每个节点提取特定字段,并将其转换为数组 我有检索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
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);