C# C DataGridView绑定到XML子集

C# C DataGridView绑定到XML子集,c#,xml,datagridview,hierarchy,subset,C#,Xml,Datagridview,Hierarchy,Subset,我需要有条件地填充DataGridView。数据来自一个XML文件,例如 <?xml version="1.0" standalone="yes"?> <people> <person> <name>Bob</name> <dogs> <dog><name>Rover</name></dog> <dog><name&

我需要有条件地填充DataGridView。数据来自一个XML文件,例如

<?xml version="1.0" standalone="yes"?>
<people>
  <person>
    <name>Bob</name>
    <dogs>
      <dog><name>Rover</name></dog>
      <dog><name>Rex</name></dog>
    </dogs>
  </person>
  <person>
    <name>Jim</name>
    <dogs>
      <dog><name>Duke</name></dog>
      <dog><name>Colin</name></dog>
      <dog><name>Gnasher</name></dog>
    </dogs>
  </person>
</people>
我该怎么做

谢谢
Stuart

您可以使用以下代码获取元素:

var xml = XDocument.Load(filePath);

var people = xml.Elements("people").Elements("person");
var dogElements = people.Elements("dogs").Elements("dog").Where(p => p.Parent.Parent.Element("name").Value == "Bob");

var dogs = dogElements.Select(d => new {Name = d.Element("name").Value, Owner = d.Parent.Parent.Element("name").Value});

dataGridView1.DataSource = dogs;
dataGridView1.DataMember = "Name";
作为一个例子,我在这里也选择了狗的主人


您必须添加对System.Xml和System.Xml.Linq的引用。。。以前没有和林克一起玩过。我会放手的。谢谢我终于有时间尝试了!但是,在设置字段名的DataMember:Child列表时,我在最后一行遇到了一个问题。你能给我一个指针吗?提前谢谢!
var xml = XDocument.Load(filePath);

var people = xml.Elements("people").Elements("person");
var dogElements = people.Elements("dogs").Elements("dog").Where(p => p.Parent.Parent.Element("name").Value == "Bob");

var dogs = dogElements.Select(d => new {Name = d.Element("name").Value, Owner = d.Parent.Parent.Element("name").Value});

dataGridView1.DataSource = dogs;
dataGridView1.DataMember = "Name";