質問

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;を使用できます。必要に応じて、明示的にデータを書き出す機能。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top