访问xml节点值
本文关键字:节点 xml 访问 | 更新日期: 2023-09-27 18:27:20
我有类似的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));
但这不起作用
Select
、Where
和其他LINQ方法返回一个IEnumerable
(类似于集合),而不是单个项。
原因是可能有许多项目具有指定的名称。
但是,由于您确信有一个项目,您可以获得第一个项目(通过First()
方法),如下所示:
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);