- - PR -
DataTableから階層の浅いXMLを作成したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-09-02 13:31
DataSet,DataTableを利用して、1レコードのみデータのXMLを作成することは
できないでしょうか?出力するXMLのルート要素名をDataTableの名前としたいのですが、方法を見つけることができませんでした。 現在、.NETを利用してアプリケーションを作成しています。 作成しているアプリケーションはXMLを用いてサーバと通信します。 サーバから受信したデータをDataSetに格納し、DataSetのDataTableに 格納されたデータの内、1レコードのみを他のサーバにXMLで送付します。 ここでお聞きしたいのは、次のような形式のXMLをDataSet(DataTable)から 作成する方法です。 例:(1レコードのみなので、DataTableの名前がルート要素名になる) <sample> <No>1</No> <Name>abc</Name> </sample> 上記のようなXMLを作成したいのですが、DataSet及びDataTableのWriteXML() メソッドでは、以下の様なXMLが出力されます。 <DocumentElement> # DataSetの名前 <sample> <No>1</No> <Name>abc</Name> </sample> </DocumentElement> 上記を出力するプログラムは以下の通りです。 DataTable dtTest = new DataTable("sample"); dtTest.Columns.Add("No", typeof(Int32)); dtTest.Columns.Add("Name", typeof(String)); DataRow drAdd; drAdd = dtTest.NewRow(); drAdd["No"] = 1; drAdd["Name"] = "abc"; dtTest.Rows.Add(drAdd); System.IO.StringWriter swXML = new System.IO.StringWriter(); dtTest.WriteXml(swXML); textBox1.Text = swXML.ToString(); 何卒、ご助言をお願いいたします。 |
|
投稿日時: 2008-09-02 16:50
DataTable.TableNameとDataColumn.ColumnNameで自作すればいいのでは?
|
|
投稿日時: 2008-09-02 18:55
やはりそれしかないでしょうか?
XMLWriterなどを利用して作るのは容易なんですが、今回はなるべくコードを書かないという目標でやってまして、DataSetやDataTableのXML出力機能を使いたいと考えていました。 DataSet全体をXMLに出力する場所もあるため、XMLの生成ロジックが2種類となるのもすっきりしませんし・・。 でも確かに、このことで悩むよりは、他の事で悩んだほうがよさそうですね。 |
1