2012-04-27 9 views
1

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

+1

「静的にデータグリッドに入れる」とはどういう意味ですか?コードで記述すれば、動的です!とにかく、 'System.Windows.Data.XmlDataProvider'を見てください。 –

答えて

2

データセットオブジェクトには、 "ReadXml(文字列ファイル名)"メソッドがあります。

サンプル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"); 

これは動作しますが、私は通常、POCOさんに私のxmlを取得し、ビジネスのコレクションを使用して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(); 
関連する問題