- - PR -
階層構造のあるXMLをDataSetに…。
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-26 11:20
いつもお世話になっております。
下記のようなXMLをDataSetに取り込んで、 最終的にはSPREADで表示するような、 Winアプリを作成しております。 <Data> <Person> <Name>×××</Name> <Age>××</Age> <Address> <Country>××</Country> <City>××××</City> </Address> </Name> </Person> <Person> <Name>○○○</Name> <Age>○○</Age> <Address> <Country>○○○</Country> <City>○○○○○</City> </Address> </Person> </Data> ↑これを取り込み、SPREAD上では、 <Person>タグの内容を数行に分けて表示したいと考えています。 つまり、 1行目に<Person>タグの内容を。 2行目に<Person>タグ内の<Address>タグの内容を…。という感じです。 DataSetに取り込んだ段階で、 "Person"と"Address"という2つのDataTableが作成されるのですが、 これが上手く連携してくれません。 おそらく、Relationが無い為だと思われるのですが、 各タグに、そのような情報が無い為、Relationが張れないのです…。 ※DataGridだと、+ボタンで階層構造を表示することができるのですが…。 XMLの階層構造を、上手く表示する方法がありましたら、 ご教授願えませんでしょうか? あるいは、そもそも、こういったXMLはSPREADシートに表示できないのでしょか? 宜しくお願い致します。 | ||||||||
|
投稿日時: 2005-04-27 21:54
DTDだっけ?定義していますか?
_________________ | ||||||||
|
投稿日時: 2005-04-29 01:13
リレーションであれば、コードでDataTable間のリレーションを関連付けることができます。
でなければ、対象のXMLデータ専用のデータセットをVS.NETで定義すればデザイナを使用して関連付けがビジュアルにできます。で、そのデータセットクラスを使用してXMLを読み込むとか。 DataTableのリレーションの作成に関してはMSDNを参照してみてください。 以前書いたことはあるんですが、そのときしか必要になったことがないので、今はちょっと空では憶えていません。 ただ別に複雑ではなかったです。 | ||||||||
|
投稿日時: 2005-04-29 17:52
そのためのキーが、設定されていないように思います。ん〜?読みとれていない、かな? こんな風にテーブルが作成されていれば、リレーションをはれないですよね?
元々、このPersonを識別する列がありませんから、またはNameなのかもしれませんが、リレーションをあとから張るのは不可能と思います。 _________________ | ||||||||
|
投稿日時: 2005-04-29 18:25
皆様
お返事ありがとうございます。 Jittaさん >> DTDは定義されていません。 karajanさん >> Jittaさんのおっしゃるとおり、 Relationは設定できない構造となっています…。 皆様のご意見を参考に、自分でいろいろと試したのですが、 ChildRows()を使用すると、うまく取得出来ました。 ※本当に正しいのか、もっと上手い方法があるのか、 わかりませんが、とりあえず解決できました。 本当にありがとうございました。 | ||||||||
|
投稿日時: 2005-04-29 19:38
本当ですね。
何でできると思ったんだろう・・・。 やっぱり空でいえるくらいでないと、あまりいい加減なことはいえないですね。 以後気をつけます | ||||||||
|
投稿日時: 2005-04-29 20:44
私もいい加減なこといってますよぉ〜(゚_゚;
正しいでしょう。おそらく、元のXMLが階層になっていますから、そっちからとってきていると思います。 そのうち試そうと思っていたことを報告していただき、ありがとうございます。 _________________ |
1