熟悉了如何用Visual Basic 6創(chuàng)建XML文件,接下來(lái),我們將編寫(xiě)一個(gè) 程序,使得程序開(kāi)始運(yùn)行時(shí),程序從XML文件中加載數(shù)據(jù),在程序運(yùn)行結(jié)束時(shí),將程序中的現(xiàn)行值存入XML文件中。 首先,建立一個(gè)名叫Personal.xml的文件:
<?xml version="1.0" encoding="GB2312"?>
<個(gè)人信息>
<姓名>洪萬(wàn)福</姓名>
<性別>男</性別>
<出生日期>1983年x月x日</出生日期>
<地址>福建省廈門(mén)市集美大學(xué)水產(chǎn)學(xué)院新區(qū)270#</地址>
<郵編>361021</郵編>
<QQ>24948251</QQ>
<個(gè)人主頁(yè)>http://hongwanfu.126.com</個(gè)人主頁(yè)>
</個(gè)人信息> |
其中,encoding="GB2312"是為了防止顯示中文時(shí)出現(xiàn)亂碼。 接著,進(jìn)入Visual Basic 6,建立7個(gè)Label和7個(gè)TextBox, 具體如圖: 隨后,編寫(xiě)如下代碼:
Option Explicit Private p_AppPath As String Private Sub Form_Load() ' 獲得程序運(yùn)行目錄 p_AppPath = App.Path If Right$(p_AppPath, 1) <> "\" Then p_AppPath = p_AppPath & "\" ' 加載值 LoadValues End Sub
Private Sub Form_Unload(Cancel As Integer) ' 保存現(xiàn)有的值 SaveValues End Sub
Private Sub LoadValues()
Dim xml_document As DOMDocument
Dim values_node As IXMLDOMNode
' 載入文件
Set xml_document = New DOMDocument xml_document.Load p_AppPath & "Personal.xml" If xml_document.documentElement Is Nothing Then
Exit Sub
End If
'尋找節(jié)點(diǎn) Set values_node = xml_document.selectSingleNode("個(gè)人信息") ' 讀取各個(gè)節(jié)點(diǎn)的值 txtName.Text = GetNodeValue(values_node, "姓名", "???") txtSex.Text = GetNodeValue(values_node, "性別", "???") txtBirthday.Text = GetNodeValue(values_node, "出生日期", "???") txtAddress.Text = GetNodeValue(values_node, "地址", "???") txtZip.Text = GetNodeValue(values_node, "郵編", "???") txtQQ.Text = GetNodeValue(values_node, "QQ", "???") txtHomepage.Text = GetNodeValue(values_node, "個(gè)人主頁(yè)", "???")
End Sub
' 返回各個(gè)節(jié)點(diǎn)的值
Private Function GetNodeValue(ByVal start_at_node As IXMLDOMNode, ByVal node_name As String, _
Optional ByVal default_value As String = "") As String
Dim value_node As IXMLDOMNode Set value_node = start_at_node.selectSingleNode(".//" & node_name) If value_node Is Nothing Then GetNodeValue = default_value Else GetNodeValue = value_node.Text End If
End Function
' 保存現(xiàn)有的值
Private Sub SaveValues() Dim xml_document As DOMDocument Dim values_node As IXMLDOMNode ' 建立XML文件 Set xml_document = New DOMDocument Set values_node = xml_document.createElement("個(gè)人信息") xml_document.appendChild values_node CreateNode values_node, "姓名", txtName.Text CreateNode values_node, "性別", txtSex.Text CreateNode values_node, "出生日期", txtBirthday.Text CreateNode values_node, "地址", txtAddress.Text CreateNode values_node, "郵編", txtZip.Text CreateNode values_node, "QQ", txtQQ.Text CreateNode values_node, "個(gè)人主頁(yè)", txtHomepage.Text ' 保存XML文件 xml_document.save p_AppPath & "Personal.xml" End Sub
Private Sub CreateNode(ByVal parent As IXMLDOMNode, _
ByVal node_name As String, ByVal node_value As String)
Dim new_node As IXMLDOMNode Set new_node = parent.ownerDocument.createElement(node_name) new_node.Text = node_value parent.appendChild new_node End Sub |
運(yùn)行結(jié)果如下: 雖然,MSXML提供了從Visual Basic6.0加載和存儲(chǔ)XML文檔的工具,但是,對(duì)其的應(yīng)用要求程序員對(duì)VB和MSXML的COM接口有一定的認(rèn)識(shí),所以,并不是得到很廣泛的應(yīng)用。
|