投稿日 | : 2004/07/18(Sun) 21:57 |
投稿者 | : tak |
Eメール | : |
URL | : |
タイトル | : Re^2: ListViewのNodeをXMLより取得したいのですが |
>魔界の仮面弁士さん
レスありがとうございます。
ご教授いただいたXMLファイルで現状のロジックを流すと以下の結果となりました。
階層は思い通りになっていますが、ノードのテキストがすべて「node」となっていました。
<node text>タグのテキストを取得する方法がわかりませんでした・・。
よろしければ取得方法を教えていただけませんか??
node
└-node
└-node
└-node
└-node
└-node
└-node
└-node
└-node
└-node
└-node
└-node
└-node
一応現状のソースを載せて置きます。
Option Explicit
Dim XMLDoc As MSXML.DOMDocument
Private Sub Form_Load()
Set XMLDoc = New DOMDocument
XMLDoc.async = False
XMLDoc.Load Text1.Text
If XMLDoc.parseError.errorCode = 0 Then
If XMLDoc.readyState = 4 Then
TreeView1.Nodes.Clear
AddNode XMLDoc.documentElement
End If
Else
MsgBox XMLDoc.parseError.reason & vbCrLf & _
XMLDoc.parseError.Line & vbCrLf & _
XMLDoc.parseError.srcText
End If
End Sub
Private Sub AddNode(ByRef XML_Node As IXMLDOMNode, _
Optional ByRef TreeNode As Node)
Dim xNode As Node
Dim xNodeList As IXMLDOMNodeList
Dim i As Long
If TreeNode Is Nothing Then
Set xNode = TreeView1.Nodes.Add
Else
Set xNode = TreeView1.Nodes.Add(TreeNode, tvwChild)
End If
xNode.Expanded = True
xNode.Text = XML_Node.nodeName
If xNode.Text = "#text" Then
xNode.Text = XML_Node.nodeTypedValue
Else
xNode.Text = xNode.Text
End If
Set xNodeList = XML_Node.childNodes
For i = 0 To xNodeList.length - 1
AddNode xNodeList.Item(i), xNode
Next
End Sub