- PR -

DataTableから階層の浅いXMLを作成したい

1
投稿者投稿内容
ねてる
会議室デビュー日: 2008/09/02
投稿数: 2
投稿日時: 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();


何卒、ご助言をお願いいたします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2008-09-02 16:50
DataTable.TableNameとDataColumn.ColumnNameで自作すればいいのでは?
ねてる
会議室デビュー日: 2008/09/02
投稿数: 2
投稿日時: 2008-09-02 18:55
やはりそれしかないでしょうか?

XMLWriterなどを利用して作るのは容易なんですが、今回はなるべくコードを書かないという目標でやってまして、DataSetやDataTableのXML出力機能を使いたいと考えていました。
DataSet全体をXMLに出力する場所もあるため、XMLの生成ロジックが2種類となるのもすっきりしませんし・・。

でも確かに、このことで悩むよりは、他の事で悩んだほうがよさそうですね。


1

スキルアップ/キャリアアップ(JOB@IT)