XDocument后代简单语句的后代
本文关键字:后代 语句 简单 XDocument | 更新日期: 2023-09-27 18:05:18
我有一个包含元素子元素的XML文件:
<Root>
<Location>
<DepartureBoundary>
<DepartureBoundaryRadius>600</DepartureBoundaryRadius>
</DepartureBoundary>
</Location>
<Location>
<DepartureBoundary>
<DepartureBoundaryRadius>600</DepartureBoundaryRadius>
</DepartureBoundary>
</Location>
</Root>
目前,我正在做以下操作来访问DepartureBoundaryRadius的值:
XDocument locationsDoc = XDocument.Load("file.xml");
DepartureLocationBoundaryRadius = null;
List<DepartureBoundaryRadius> radiusList = new List<DepartureBoundaryRadius>();
foreach (XElement locationElement in locationsDoc.Descendants("Root"))
{
foreach (XElement locationSubElement in locationsDoc.Descendants("Location"))
{
foreach (XElement departureElement in locationsDoc.Descendants("DepartureBoundary"))
{
DepartureLocationBoundaryRadius = departureElement.Element("DepartureRadius").Value));
radiusList.Add(DepartureLocationBoundaryRadius);
}
}
}
有更简单的方法吗?我宁愿在一行或一条语句中分配DepartureLocationBoundaryRadius的值——特别是因为每个Location只有一个DepartureBoundaryRadius值。任何想法吗?谢谢!
我想你的问题是指Elements
。Descendants
已经给了你想要的
var values = locationsDoc.Descendants("DepartureBoundaryRadius")
.Select(x => x.Value)
.ToList();
var list = xdoc.Document.Descendants("DepartureBoundaryRadius").Select(x=>x.Value);