我有像
这样的xml文件<House>
<Name>some name</Name>
<Price>22223</Price>
</House>
我正在使用XElement加载文件,我正在选择它的元素
XElement elem = XElement.Load(fileName);
var houseElements = from h in elem.Elements() select h;
问题是:如何访问此文件中每个元素内的值 我试过
model.Name = houseElements.Where(x => x.Name == "Name").Select(x => x.Value).ToString();
model.Price= Convert.ToInt16(houseElements.Where(x => x.Name == "Price").Select(x => x.Value));
但这不起作用
答案 0 :(得分:4)
Select
,Where
和其他LINQ方法返回IEnumerable
(就像集合一样),而不是单个项目。
原因是可能有许多具有指定名称的项目。
但是既然你确定只有一个项目,你可以像这样得到第一个项目(通过 the First()
method):
var Name =
houseElements
.Where(x => x.Name == "Name")
.Select(x => x.Value)
.First();
var Price =
Convert.ToInt16(
houseElements
.Where(x => x.Name == "Price")
.Select(x => x.Value)
.First());
以下是代码的更好版本:
var Name =
houseElements
.Elements("Name")
.First()
.Value;
var Price =
Convert.ToInt16(
houseElements
.Elements("Price")
.First()
.Value);