質問
XmlDocumentまたはStringからDataGridにXmlを読み込む最良の方法は何ですか?
xmlは特定の形式である必要がありますか?
A DataSetを仲介として使用する必要がありますか?
同僚から開発されたサーバーから送信されたXmlを使用するクライアントで作業していますが、DataGridが必要とするものに合わせてXmlの形式を変更するように彼に依頼することができます。
解決 4
データをデータセットに取得するための部分的な回答がありますが、リレーショナルリンクを持つテーブルのセットとしてそれを読み取ります。
DataSet ds = new DataSet();
XmlTextReader xmlreader = new XmlTextReader(xmlSource, XmlNodeType.Document, null);
ds.ReadXml(xmlreader);
他のヒント
実行している.NETのバージョンによって異なります。 Linq2Xmlを使用できる場合は簡単です。 XDocumentを作成して、子ノードを匿名型のリストとして選択するだけです。
Linq2Xmlを使用できない場合、他にもいくつかのオプションがあります。 DataSetの使用は1つであり、これはうまく機能しますが、受け取るXMLに依存します。もう1つのオプションは、xmlから読み取るエンティティを記述するクラスを作成し、xmlノードを手動でステップスルーすることです。 3番目のオプションは、Xmlシリアル化を使用して、xmlをオブジェクトのリストに逆シリアル化することです。これが設定されているクラスがある限り、これはうまく機能します。
最も簡単なオプションは、XDocumentを作成するか、提案どおりにDataSetを作成することです。
明らかにXMLは有効である必要があります:)
その後、データセットを定義し、データグリッドを定義します。データセットでreadXMLメソッドを使用して、データセットにXMLを入力し、dataBindで終了します。
DataSet myDataSet = new DataSet();
myDataSet .ReadXml(myXMLString);
myDataGrid.DataSource = myDataSet ;
myDataGrid.DataBind();
XmlDatasourceオブジェクトをグリッドのデータソースとして使用できます。これにより、データのソースであるXMLを選択するために、ファイルとXPathを設定できます。その後、<!> lt;%#XPath = <!> quot; blah <!> quot;%<!> gt;を使用できます。必要に応じて、明示的にデータを書き出す機能。