如何在XML文件的单个父元素中选择许多子元素的值

时间:2019-06-03 18:31:45

标签: c# xml

我想从一个单个父元素下的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。我只是选择不正确。

1 个答案:

答案 0 :(得分:1)

如果有多个Locations元素,您可以尝试以下操作:

doc.Root.Elements("Locations").Elements("Location").Select(x=>x.Attribute("ID").Value)
  var csv = string.Join(',', ids);

如果您只是在ID后面,则不需要.SelectMany()