VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/07/19(Mon) 23:11
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^3: ListViewのNodeをXMLより取得したいのですが

> ご教授いただいたXMLファイルで現状のロジックを流すと以下の結果となりました。
> 階層は思い通りになっていますが、ノードのテキストがすべて「node」となっていました。

要素ノード中の属性ノードを取得するには、
  XMLNode.attributes.getNamedItem("text").nodeValue
のような構文を使えます。

また、XPath式を御存知なら、
  XMLNode.selectSingleNode(@text").nodeValue
のように、selectSingleNode/SelectNodesメソッドを使うのも便利かと。


> 一応現状のソースを載せて置きます。
例えば、こんな感じで。

Private Sub Form_Load()
    With New DOMDocument
        .async = False
        If .loadXML(Text1.Text) Then
            FillNode TreeView1.Nodes.Add(), .documentElement
        End If
    End With
End Sub

Private Sub FillNode(ByVal TreeNode As Node, ByVal XMLNode As IXMLDOMNode)
    TreeNode.Text = XMLNode.selectSingleNode("@text").nodeValue
    TreeNode.Expanded = True
    Dim Child As IXMLDOMNode
    For Each Child In XMLNode.childNodes
        FillNode TreeView1.Nodes.Add(TreeNode, tvwChild), Child
    Next
End Sub


これを応用すれば、テキスト以外にも「ノードの画像」「ノードを開いておくか閉じておくか」
「ノードの文字色」といった情報も、XMLデータに含めておくことができるかと。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -