首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

XML 文件结尾的有关问题

2012-08-07 
XML 文件结尾的问题没看到XML 规范里怎么说XML 文件的结尾。按照习惯,文本文档的结尾是有Null 字符的。可是

XML 文件结尾的问题
没看到XML 规范里怎么说XML 文件的结尾。按照习惯,文本文档的结尾是有Null 字符的。可是用winHex 看别的XML 多数没有Null 结束字符,有谁知道到底怎么处理。

[解决办法]
处理XML文件有专门的类型库:

VB code
Option Explicit'引用Microsoft XML类型库'7个文本框:TxtName.Text,txtSex.Text,txtBirthday.Text,txtAddress.Text,txtZip.Text,txtQQ.Text,txtHomepage.Text  Private p_AppPath As String' 返回各个节点的值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 FunctionPrivate 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, "个人主页", "???")  Set xml_document = NothingEnd Sub' 保存现有的值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"  Set xml_document = NothingEnd 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 SubPrivate 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 Sub 

热点排行