我正在使用解析XML文件的linq代码。这是我的代码。我想要绑定细节和图像列表。
XmlSerializer serializer = new XmlSerializer(typeof(Notchs));
XDocument xmlDoc = XDocument.Parse(dataInXmlFile);
Notchs notchs = (Notchs)serializer.Deserialize(xmlDoc.CreateReader());
var query = from l in xmlDoc.Descendants("Category")
select new Notch
{
name = (string)l.Attribute("name").Value,
Titles = l.Element("Articles").Elements("article")
.Select(s => s.Attribute("title").ToString())
.ToList(),
Image = l.Element("Articles").Elements("article").Elements("thumb_image").Elements("image")
.Select(x => x.Attribute("url").ToString()).ToList()
};
foreach (var result in query)
{
Console.WriteLine(result.name);
foreach (var detail in result.Titles)
{
Console.WriteLine(detail);
}
}
NotchsList.ItemsSource = query.ToList();
我试过这段代码,但我得到了如下的输出..但我希望细节和图片都是列表。
name
System.Collection.Generic.List'1[string.system]
name
System.Collection.Generic.List'1[string.system]
答案 0 :(得分:0)
我认为你的
Titles = l.Element("Articles").Elements("article")
.Select(s => s.Attribute("title").ToString())
.ToList()
正在返回IEnumerable<IEnumerable<String>>
。您可能需要.SelectMany
而不是.Select
。