1

XML ドキュメントをテーブルに変換して動的に表示することは可能ですか。私のプログラムは実行中に XML を生成するため、xml ドキュメントの内容を表形式で表示する必要があります。現在、私はxmlreaderを使用してドキュメントを解析し、それらを静的にデータグリッドに配置しています。それを行うためのより良い方法はありますか?

4

1 に答える 1

2

データセット オブジェクトには「ReadXml(string filename)」メソッドがあります。

XML products.xml の例:

<?xml version="1.0" encoding="utf-8"?>
<Products>
  <Product id="1">
    <Name>Product Name</Name>
  </Product>
  <Prodcut id="2">
    <Name>Another Product</Name>
  </Product>
</Products>

C# スニペット:

DataSet myXmlDataSet = new DataSet();
myXmlDataSet.ReadXml("products.xml");
DataTable productTable = myXmlDataSet("Product");

これは機能しますが、私は通常、xml を POCO に取り込み、ビジネス オブジェクトのコレクションを使用して UI グリッドにデータを入力することを好みます。データソースが変更された場合 (SQL またはその他のデータソースに移動した場合)、そのデータ アクセス コンポーネントを置き換えることができます。System.Xml.Linq の XDocument は、これを行うのに非常に便利です。

var xmlDoc = XDocument.Load("products.xml");
var productNodes = xmlDoc.Root.Elements("Product");
var prodList = productNodes.Select(prod => new Product()
    {
      id = int.Parse(prod.Attribute("id").Value),
      Name = drug.Element("Name")
     })
   .ToList();
于 2012-04-30T16:07:44.390 に答える