Dim ElementNode As IXMLDOMElement
Dim RootElementNode As IXMLDOMElement
Set ElementNode = xmlDoc.createElement("NODES")
Set RootElementNode = xmlDoc.appendChild(ElementNode)
Dim TNode As Node
Dim i As Integer
For i = 1 To SmartTreeView.Nodes.Count
Set TNode = SmartTreeView.Nodes(i)
Set ElementNode = xmlDoc.createElement("NODE")
ElementNode.setAttribute "Caption", TNode.Text
ElementNode.setAttribute "Key", TNode.Key
ElementNode.setAttribute "Tag", TNode.Tag
If TNode.Parent Is Nothing Then
ElementNode.setAttribute "ParentKey", ""
Else
ElementNode.setAttribute "ParentKey", TNode.Parent.Key
End If
RootElementNode.appendChild ElementNode
Next
xmlDoc.save ("C:\XMLNodes.xml")
End Sub
bttnSave_Click事件句柄首先创建根元素,然后用一个For...Next循环遍历TreeView控件的节点集合,每次循环创建一个新的元素,提取节点的属性作为XML元素的属性。
图20:保存为XML文件
(4)读取节点数据
“读取XML文档”按钮的Click事件句柄首先创建一个DOMDocument对象,然后读入XML文档。接着,利用getElementsByTagName依次获取各个节点,分别设置节点的各个属性,最终构造出原先保存的TreeView,如下所示:
Private Sub bttnLoad_Click()
Dim xmlDoc As DOMDocument30
Set xmlDoc = New DOMDocument30
If Not xmlDoc.Load("C:\XMLNodes.xml") Then
MsgBox "不能读取C:\XMLNodes.xml文件。"
Exit Sub
End If
SmartTreeView.Nodes.Clear
Dim iNode As Integer
Dim newElement As IXMLDOMElement
For iNode = 0 To xmlDoc.getElementsByTagName("NODE").length - 1
Set newElement = xmlDoc.getElementsByTagName ("NODE").Item(iNode)
If newElement.getAttribute("ParentKey") = "" Then
SmartTreeView.Nodes.Add , , _
newElement.getAttribute("Key"), _
newElement.getAttribute("Caption")
Else
SmartTreeView.Nodes.Add _
newElement.getAttribute("ParentKey"), _
tvwChild, newElement.getAttribute("Key"),newElement.getAttribute("Caption")
End If
Next
End Sub
(5)本示例的完整代码如下:
Option Explicit
Private Sub bttnPopulate_Click()
Dim nodx As Node
'设置外观
SmartTreeView.LineStyle = 1
SmartTreeView.Nodes.Clear
'建立树形图
Set nodx = SmartTreeView.Nodes.Add(, , "湖北省", "湖北省")
Set nodx = SmartTreeView.Nodes.Add(, , "江苏省", "江苏省")
Set nodx = SmartTreeView.Nodes.Add("湖北省", tvwChild, "武汉市", "武汉市")
Set nodx = SmartTreeView.Nodes.Add("湖北省", tvwChild, "宜昌市", "宜昌市")
Set nodx = SmartTreeView.Nodes.Add("武汉市", tvwChild, "wchild01", "江汉区")
Set nodx = SmartTreeView.Nodes.Add("武汉市", tvwChild, "wchild02", "江岸区")
Set nodx = SmartTreeView.Nodes.Add("武汉市", tvwChild, "wchild03", "汉口区")
Set nodx = SmartTreeView.Nodes.Add("武汉市", tvwChild, "wchild04", "汉阳区")
Set nodx = SmartTreeView.Nodes.Add("武汉市", tvwChild, "wchild05", "武昌区")
Set nodx = SmartTreeView.Nodes.Add("武汉市", tvwChild, "wchild06", "青山区")
Set nodx = SmartTreeView.Nodes.Add("武汉市", tvwChild, "wchild07", "洪山区")
Set nodx = SmartTreeView.Nodes.Add("宜昌市", tvwChild, "ychild01", "西陵区")
Set nodx = SmartTreeView.Nodes.Add("宜昌市", tvwChild, "ychild02", "武家岗区")
Set nodx = SmartTreeView.Nodes.Add("宜昌市", tvwChild, "ychild03", "点军区")
Set nodx = SmartTreeView.Nodes.Add("宜昌市", tvwChild, "ychild04", "夷陵区")
Set nodx = SmartTreeView.Nodes.Add("江苏省", tvwChild, "南京市", "南京市")
Set nodx = SmartTreeView.Nodes.Add("江苏省", tvwChild, "南通市", "南通市")
Set nodx = SmartTreeView.Nodes.Add("南京市", tvwChild, "nchild01", "玄武区")
Set nodx = SmartTreeView.Nodes.Add("南京市", tvwChild, "nchild02", "秦淮区")
Set nodx = SmartTreeView.Nodes.Add("南京市", tvwChild, "nchild03", "江宁区")
Set nodx = SmartTreeView.Nodes.Add("南京市", tvwChild, "nchild04", "建邺区")
Set nodx = SmartTreeView.Nodes.Add("南京市", tvwChild, "nchild05", "鼓楼区")
Set nodx = SmartTreeView.Nodes.Add("南京市", tvwChild, "nchild06", "六合区")
Set nodx = SmartTreeView.Nodes.Add("南京市", tvwChild, "nchild07", "栖霞区")
Set nodx = SmartTreeView.Nodes.Add("南通市", tvwChild, "nchild08", "崇明")
Set nodx = SmartTreeView.Nodes.Add("南通市", tvwChild, "nchild09", "启东")
Set nodx = SmartTreeView.Nodes.Add("南通市", tvwChild, "nchild10", "海门")
Set nodx = SmartTreeView.Nodes.Add("南通市", tvwChild, "nchild11", "靖江")
End Sub
Private Sub bttnSave_Click()
Dim xmlDoc As DOMDocument30
Set xmlDoc = New DOMDocument30
Dim ElementNode As IXMLDOMElement
Dim RootElementNode As IXMLDOMElement
Set ElementNode = xmlDoc.createElement("NODES")
Set RootElementNode = xmlDoc.appendChild(ElementNode)
Dim TNode As Node
Dim i As Integer
For i = 1 To SmartTreeView.Nodes.Count
Set TNode = SmartTreeView.Nodes(i)
Set ElementNode = xmlDoc.createElement("NODE")
ElementNode.setAttribute "Caption", TNode.Text
ElementNode.setAttribute "Key", TNode.Key
ElementNode.setAttribute "Tag", TNode.Tag
If TNode.Parent Is Nothing Then
ElementNode.setAttribute "ParentKey", ""
Else
ElementNode.setAttribute "ParentKey", TNode.Parent.Key
End If
RootElementNode.appendChild ElementNode
Next
xmlDoc.Save ("C:\XMLNodes.xml")
End Sub
Private Sub bttnLoaded_Click()
Dim xmlDoc As DOMDocument30
Set xmlDoc = New DOMDocument30
bttnPopulate.Enabled = False
If Not xmlDoc.Load("C:\XMLNodes.xml") Then
MsgBox "不能读取C:\XMLNodes.xml文件。"
Exit Sub
End If
SmartTreeView.Nodes.Clear
Dim iNode As Integer
Dim newElement As IXMLDOMElement
For iNode = 0 To xmlDoc.getElementsByTagName("NODE").Length - 1
Set newElement = xmlDoc.getElementsByTagName("NODE").Item(iNode)
If newElement.getAttribute("ParentKey") = "" Then
SmartTreeView.Nodes.Add , , _
newElement.getAttribute("Key"), _
newElement.getAttribute("Caption")
Else
SmartTreeView.Nodes.Add _
newElement.getAttribute("ParentKey"), _
tvwChild, newElement.getAttribute("Key"), newElement.getAttribute("Caption")
End If
Next
End Sub
声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!
第1页 | 第2页 | 第3页 | 第4页 | 第5页 | 第6页 | 第7页时间:2007-9-26 21:11:51,点击:0
上一篇:在office Excel页眉页脚中插入图片【声明】:以上文章或资料除注明为Office吧自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,联系邮箱:thinkou@126.com,本站确认后将立即撤下。谢谢您的支持与理解!
相关评论