- - PR -
DBの内容を階層をつけてXMLに出力したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-12-14 18:26
C#で開発しています。
データの取得にDataSetとDataAdapterを使用しています。 サーバはSqlServer2000です。 ヘッダテーブルと、データテーブルからなるDBの内容をXMLに出力したいのですが その際、階層をつけてXMLデータとして出力するにはどうしたらいいでしょう。 また、ROOT_NAMEの変更方法もわかりません 以下のようなテーブルがあり、TBL_BはTBL_Aの子供、 TBL_A:1レコードに対してTBL_B:複数レコード TBL_A KEY ColA1 ColA11 ColA2 TBL_B KEY MEISAI_NO ColB1 ColB2 DataSetのWriteXMLを使ってみたのですが SQLで普通に取ってくると当然、TBL_Aも明細行分取得してしまいうまくいきません。 これを下のようなxmlを出力したいです <?xml version = "1.0" encoding="utf-8"?> <ROOT_NAME> <TBL_A> <ColA1>aaa</ColA1> <ColA11>aaa</ColA11> <TBL_B LINE = "1"> <ColB1>bbbb</ColB1> <ColB2>bcbcb</ColB2> </TBL_B> <TBL_B LINE = "2"> <ColB1>bbbb</ColB1> <ColB2>bcbcb</ColB2> </TBL_B> <ColA2>a2a2</ColA2> </TBL_A> <TBL_A> <ColA1>aaa2</ColA1> <ColA11>aaa</ColA11> <TBL_B LINE = "1"> <ColB1>BBBB</ColB1> <ColB2>BCBCBC</ColB2> </TBL_B> <TBL_B LINE = "2"> <ColB1>BBBB2</ColB1> <ColB2>B2b2b2</ColB2> </TBL_B> <ColA2>a2a2</ColA2> </TBL_A> </ROOT_NAME> [ メッセージ編集済み 編集者: プラズマY 編集日時 2007-12-14 20:07 ] |
|
投稿日時: 2007-12-15 10:01
FOR XMLという、XML形式での出力を行う機能がMSSQLにはありますので、
これを使うのはどうでしょうか。 MSSQL2005だとこの機能が強化されてて使いやすくなってるものの、 MSSQL2000だと若干クエリが複雑になるかなとは思いますけれど。 C#にもXMLを扱うAPIがあると思いますので、MSSQLである程度望みの形に できたら、細部はそちらで微調整するといいかもしれません。 すべてをどちらかで、というのはきつい気がするので。 |
1