- PR -

XMLデータのツリービューへの表示

1
投稿者投稿内容
Asoas
ベテラン
会議室デビュー日: 2006/03/10
投稿数: 60
投稿日時: 2006-05-29 20:49
下記のような構造のXMLファイルを、フォーム起動時にツリービューに
読み込みたいと考えております。
シンプルなXMLファイルの読込みはできたのですが、複雑な子を持つ構造のXMLデータの
読込み方法が分かりません。
分かりにくいかも知れませんが、サンプルを下記に書いておきました。
要はXMLの階層が深い状態(この後も階層はさらに深くなる可能性あり)を、どう読み込むかということです。

教えて頂きたく。宜しくお願い致します。

*****シンプル構造*****
<Users>
<User>
<id>0</id>
<Name>共通</Name>
</User>
<User>
<id>1</id>
<Name>太郎</Name>
</User>
</Users>
*************************

*******複雑な構造********
<Users>
<User>
<id>0</id>
<Name>共通</Name>
  <sub>
<Child1>ユーザーA</Child1>
<Child2>ユーザーB</Child2>
<sub>
<Child1>総務</Child1>
<Child2>管理</Child2>
</sub>
<Child3>ユーザーB</Child3>
</sub>
</User>
<User>
<id>1</id>
<Name>太郎</Name>
  <sub>
<Child1>クライアントA</Child1>
<Child2>クライアントB</Child2>
</sub>
</User>
</Users>
*************************
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-29 21:03
引用:

ビギナーさんの書き込み (2006-05-29 20:49) より:

要はXMLの階層が深い状態(この後も階層はさらに深くなる可能性あり)を、どう読み込むかということです。


まず、最初にシンプル (?) な、XML で考えたのがまずかったかもしれません。
最初から階層を考えれば、「再帰」呼び出しという方法が真っ先に見つかるからです。

引用:

教えて頂きたく。


拝承。

  XML から TreeNodeCollection を作成

TreeNodeCollection が作成できれば、後は TreeView に設定するだけですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Asoas
ベテラン
会議室デビュー日: 2006/03/10
投稿数: 60
投稿日時: 2006-05-31 19:01
じゃんぬねっと様

有難うございます。
再帰を使ったらよかったのですね。納得です。
私の場合、テキストを表示するので、
reader.NodeType==XmlNodeType.Textに変更するだけで動きました。

また、上記のツリービュー表示させた状態のものを、パスとして
値を取りたいと考えております。
つまり、下記のようなツリー表示の場合、
**************
A_node
---B_sub_node
-------D_sub2_node
---C_sub_node
**************

上記を下のような文字列として取得したい
***************************************
変数1 = A_node\B_sub_node\D_sub2_node
変数2 = A_node\C_sub_node
***************************************

これも再帰を使うのだろうなと試行錯誤しているのですが、
なかなかルーチンが思いつきません。

よいロジックがあれば、教えて頂きたく。
宜しくお願いいたします。







じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-31 20:12
引用:

ビギナーさんの書き込み (2006-05-31 19:01) より:

また、上記のツリービュー表示させた状態のものを、パスとして値を取りたいと考えております。

これも再帰を使うのだろうなと試行錯誤しているのですが、
なかなかルーチンが思いつきません。

よいロジックがあれば、教えて頂きたく。


拝承。

  TreeViewのフルパス取得について

こちらで、私が書かせて頂いたコードが、参考になると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-31 20:39
# 別スレッドを見て気づいたのですが、

リンク先のスレッドの質問者と同じ方ですね。
同じようなことを何度も聞いて意味があるのでしょうか?
それとも、私が質問の意味を取り違えていますか?

# リンク先も「再帰」なんですが...
# 呼び出し側の都合関係なしで、StringCollection で返ってくるハズですし... (;~_~)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-05-31 20:45
なんとなく、再帰とか反復処理を、実際にコーディングした経験があんまりないんじゃないかという感じを受けました。
もしそうであれば、XMLよりそちらの勉強をしたほうが良いのでは…。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-06-02 11:07
引用:

mioさんの書き込み (2006-05-31 20:45) より:
なんとなく、再帰とか反復処理を、実際にコーディングした経験があんまりないんじゃないかという感じを受けました。
もしそうであれば、XMLよりそちらの勉強をしたほうが良いのでは…。


それ以前に記憶力の問題じゃないかな。応用力の問題じゃなく記憶力ね。
前スレから発展したネタならともかくそのまんまだし。記憶力をまず鍛えないと。

びっくりしたわ。
1

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