'需要在工程里面引入 microsoft xml 5.0 Private Sub SaveValues()Dim xml_document As New DOMDocumentDim values_node As IXMLDOMNodeDim Version As Variant' Create the XML document.Set xml_document = New DOMDocument'设置版本信息并加入Set Version = xml_document.createProcessingInstruction("xml", "version=" & Chr(34) & "1.0" & Chr(34) & " encoding=""gb2312""")xml_document.appendChild Version'生成根节点并把它设置为文件的根Set values_node = xml_document.createElement("Test")Set xml_document.DocumentElement = values_node'添加注释并加入values_node.appendChild xml_document.createTextNode(vbCrLf)Set value_comment = xml_document.createComment("This is a comment")values_node.appendChild value_commentvalues_node.appendChild xml_document.createTextNode(vbCrLf) '加入一个换行'生成孩子节点添加到根节点上去,并且为这个节点设置一个属性values_node.appendChild xml_document.createTextNode(vbTab)Set tempnode = xml_document.createNode(NODE_ELEMENT, "Web", "")tempnode.Text = " www.baidu.com" '设置孩子节点的值values_node.appendChild tempnodetempnode.setAttribute "Type", "Homepage" '设置孩子节点的属性values_node.appendChild xml_document.createTextNode(vbCrLf)'保存xml文件xml_document.Save "c:\Values.xml"End Sub
熟悉了如何用Visual Basic 6创建XML文件,接下来,我们将编写一个程序,使得程序开始运行时,程序从XML文件中加载数据,在程序运行结束时,将程序中的现行值存入XML文件中。
首先,建立一个名叫Personal.xml的文件:<?xml version="1.0" encoding="GB2312"?><个人信息><姓名>洪万福</姓名><性别>男</性别><出生日期>1983年x月x日</出生日期><地址>福建省厦门市集美大学水产学院新区270#</地址><邮编>361021</邮编><QQ>24948251</QQ><个人主页>http://hongwanfu.126.com</个人主页></个人信息> 其中,encoding="GB2312"是为了防止显示中文时出现乱码。 接着,进入Visual Basic 6,建立7个Label和7个TextBox, 具体如图: 随后,编写如下代码:Option ExplicitPrivate p_AppPath As StringPrivate Sub Form_Load() ' 获得程序运行目录 p_AppPath = App.Path If Right$(p_AppPath, 1) <> "\" Then p_AppPath = p_AppPath & "\" ' 加载值 LoadValuesEnd SubPrivate Sub Form_Unload(Cancel As Integer) ' 保存现有的值 SaveValuesEnd SubPrivate 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 '寻找节点 Set values_node = xml_document.selectSingleNode("个人信息") ' 读取各个节点的值 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, "个人主页", "???")End Sub' 返回各个节点的值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 IfEnd Function' 保存现有的值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("个人信息") 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, "个人主页", txtHomepage.Text ' 保存XML文件 xml_document.save p_AppPath & "Personal.xml" End SubPrivate 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_nodeEnd Sub 运行结果如下: