2009-03-02 17 views
1

XmlDocumentまたはStringのいずれかからXmlをDataGridに読み込むにはどうすればよいですか?XmlをC#のデータグリッドに読み込む

xmlは特定の形式である必要がありますか?

仲介者としてA DataSetを使用する必要がありますか?

私は同僚が開発しているサーバーから送信されたXMLを消費するクライアントで作業していますが、DataGridに必要なものと一致するようにXMLの形式を変更することができます。

答えて

0

データセットにデータを取得するには部分的な回答がありますが、リレーショナルリンクを含むテーブルセットとしてデータセットを読み込みます。

 DataSet ds = new DataSet(); 
     XmlTextReader xmlreader = new XmlTextReader(xmlSource, XmlNodeType.Document, null); 
     ds.ReadXml(xmlreader); 
+0

テーブルやリンクを(すべて)必要としませんか? –

+0

テーブルを1つのテーブルに結合したいのですが... –

2

実行している.NETのバージョンによって異なります。あなたLinq2Xmlを使用することができればそれは簡単です。 XDocumentを作成し、子ノードを匿名型のリストとして選択するだけです。

Linq2Xmlを使用できない場合は、他にもいくつかのオプションがあります。 DataSetを使用すると効果的ですが、受け取っているXMLに依存します。もう1つの選択肢は、xmlから読み込み、xmlノードを手動で処理するエンティティを記述するクラスを作成することです。第3の選択肢は、XML直列化を使用し、xmlをオブジェクトのリストにデシリアライズすることです。これは、クラスを設定している限り、うまく動作します。

最も簡単なオプションは、XDocumentを作成するか、提案どおりにデータセットを作成することです。

2

明らかにあなたのXMLは、その後

:)有効であるデータセットを定義し、データグリッドを定義する必要があります。データセットでreadXMLメソッドを使用して、XMLでデータセットを埋め、dataBindを終了してください。

DataSet myDataSet = new DataSet(); 
myDataSet .ReadXml(myXMLString); 
myDataGrid.DataSource = myDataSet ; 
myDataGrid.DataBind(); 
+0

DataSet.ReadXmlはXml文字列ではなく引数としてファイル名をとります... –

+0

ParseXmlバージョンはありますか? – Will

+0

いいえ、XmlTextリーダーを使用して私の他の答えを参照してください。 –

0

グリッドのデータソースとして、XmlDatasourceオブジェクトを使用できます。これにより、データのソースであるXMLを選択するために、ファイルとXPathを設定することができます。必要に応じて、<%#XPath = "blah"%>関数を使用して明示的にデータを書き出すことができます。

関連する問題