[英]C# DataGridView binding to subset of XML
我需要有条件地填充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>
如果使用以下代码,则可以显示DataGridView中的所有狗-但我需要将列表限制为特定人员拥有的狗。
DataSet ds = new DataSet();
ds.ReadXml("data.xml");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "dog";
我该怎么做呢?
谢谢斯图尔特
您可以使用以下代码获取XElement:
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的引用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.