解析xml文件的时候,
Dim XmlFile As DOMDocument
Dim ValueNode As IXMLDOMNode Dim FieldCount As Integer
Set XmlFile = New DOMDocument
XmlFile.Load szXml 'szxml我给出了正确的路径 Set ValueNode = XmlFile.selectSingleNode(".//msg/comm_head")‘msg节点下comm_head的节点
FieldCount = ValueNode.childNodes.length ’为何调用这句话的时候每次报错,程序通不过,求大神帮忙,报错为“对象变量或者with块变量未设置”。注:我已经引用了xml 6.0
Dim XmlFile As DOMDocument
Dim ValueNode As IXMLDOMNode Dim FieldCount As Integer
Set XmlFile = New DOMDocument
XmlFile.Load szXml 'szxml我给出了正确的路径 Set ValueNode = XmlFile.selectSingleNode(".//msg/comm_head")‘msg节点下comm_head的节点
FieldCount = ValueNode.childNodes.length ’为何调用这句话的时候每次报错,程序通不过,求大神帮忙,报错为“对象变量或者with块变量未设置”。注:我已经引用了xml 6.0
Load 之后要检查一下 xmlFile.ParseError (注意这是个对象,里面有解析错误的信息)。
<?xml version="1.0" encoding="UTF-8"?>
<个人信息>
<姓名>王老五</姓名>
<性别>男</性别>
<出生日期>1983年10月1日</出生日期>
<地址>四川省成都市XXX路999号</地址>
<邮编>610021</邮编>
<QQ>124948251</QQ>
<个人主页> http://www.126.com</个人主页>
</个人信息>'先引用MS XML对象库
'Form1上7个标签,7个文本框
Option ExplicitPrivate 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 = Nothing
End 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 = Nothing
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_node
End SubPrivate Sub Form_Load()
' 获得程序运行目录
p_AppPath = App.Path
If Right$(p_AppPath, 1) <> "\" Then p_AppPath = p_AppPath & "\"
' 加载值
LoadValues
End SubPrivate Sub Form_Unload(Cancel As Integer)
' 保存现有的值
SaveValues
End Sub
IBM 邀您分享国内外迁移Power案例