我想从一个单个父元素下的XML文件中选择5个元素值。
我遵循了“选择所有元素...”或“在单个父元素下获取元素...”的几个示例,但它们没有回答问题。至少不能以相同的方式应用相同的解决方案。
{
var xdoc = XElement.Load(FileName);
List<string> locations = new List<string>();
locations = xdoc.Elements("Locations")
.Where(x => x.Attribute("ID").Value == lab)
.SelectMany(e => e.Elements("Location").Select(n => n.Attribute("ID").Value)).ToList();
foreach (string id in locations)
{
locID += id + "," ;
}
locID.TrimEnd(',');
}
XML文件的一部分
<Locations ID="North America">
<Location ID="23023" />
<Location ID="23024" />
<Location ID="20323" />
<Location ID="22483" />
</Locations>
对于西班牙和南美,还有其他类似的街区。
我想要用逗号分隔的位置ID字符串,但是位置列表的count为= 0。我只是选择不正确。
答案 0 :(得分:1)
如果有多个Locations元素,您可以尝试以下操作:
doc.Root.Elements("Locations").Elements("Location").Select(x=>x.Attribute("ID").Value)
var csv = string.Join(',', ids);
如果您只是在ID后面,则不需要.SelectMany()