a12*_*773 1 c# xml linq class winforms
我有这个db.xml文件
<items>
<item>
<title>Title1</title>
<year>2013</title>
<categories>
<category>Category1</category>
<category>Category2</category>
<category>Category3</category>
</categories>
<count>10</count>
</item>
(and so on)
</items>
Run Code Online (Sandbox Code Playgroud)
我读的是这样的:
var items = from item in xdoc.Descendants("item")
select new
{
Title = item.Element("title").Value,
Year = item.Element("year").Value,
Categories = item.Element("categories").Value, // I know this is wrong
Count = item.Element("count").Value
};
Run Code Online (Sandbox Code Playgroud)
问题是我如何阅读类别并将其添加到列表中?
foreach (var item in items)
{
book.Title = item.Title;
book.Year = item.Year;
foreach (var Category in Categories)
{
book.Categories.Add(Category);
}
book.Count = item.Count;
books.Add(book);
}
Run Code Online (Sandbox Code Playgroud)
最好使用转换(to string,to int等,然后直接读取元素的值.这里是返回Year和Count属性的整数值的查询.Categories是IEnumerable<string>:
var items = from item in xdoc.Descendants("item")
select new {
Title = (string)item.Element("title"),
Year = (int)item.Element("year"),
Count = (int)item.Element("count"),
Categories = from c in item.Element("categories").Elements()
select (string)c
};
Run Code Online (Sandbox Code Playgroud)
如果您希望Categories以List<string>这种方式解析类别:
Categories = item.Element("categories")
.Elements()
.Select(c => (string)c)
.ToList()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8981 次 |
| 最近记录: |