0

条件付きで DataGridView を設定する必要があります。データは 1 つの 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";

どうすればいいですか?

ありがとうスチュアート

4

1 に答える 1

0

次のコードで XElements を取得できます。

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 への参照を追加する必要があります。

于 2009-08-25T09:45:44.807 に答える