51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1617|回复: 3
打印 上一主题 下一主题

[原创] 释放XML对象后仍然可以用的问题,请高手指教

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-8-10 15:56:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的外部Function文件里的内容如下:
Function ReadXml(XmlFileName)
Set xmlDoc = CreateObject("MicroSoft.XMLDom") '创建XMLDOM对象
xmlDoc.async = False   

xmlDoc.load (XmlFileName)        ' 加载XML文档

' 检查XML文档是否有错误
If xmlDoc.parseError.errorCode <> 0 Then   
   Set myErr = xmlDoc.parseError
   MsgBox("XML Loads Failed. " & myErr.reason)
Else
        Set rootNode = xmlDoc.documentElement
        set ReadXml=rootNode  
End If

set xmlDoc=Nothing
End Function
即获得根节点,但是再方法末尾set xmlDoc=Nothing把xmlNothing给释放了

脚本中的调用如下
。。。。。。。。。。。。。
set objtofind=ReadXml("D:\getmessage[1].xml" ).SelectSingleNode("//charge/item/payid")
objExcel.Cells(2,12).value="'"+objtofind.text
。。。。。。。。。。。。。。。。。。
结果可以正常运行。在此我想问的是:
1,上面的Function中不是把xmlDoc释放掉了吗,也就是说ReadXml("D:\getmessage[1].xml" )=nothing了,为什么还可以用呢?
2,如果ReadXml("D:\getmessage[1].xml" )没被释放掉,那我该怎么释放这个东西呢?是不是直接set ReadXml("D:\getmessage[1].xml" )=nothing就可以了?

[ 本帖最后由 csj 于 2010-8-10 16:01 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-8-10 16:15:39 | 只看该作者
1. 你试试断点。。。set xmlDoc=Nothing。能不能到这里
2. 没看懂你要干什么。。。把rootNode  对象返回出来了,当然正常。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-8-10 17:50:58 | 只看该作者

回复 2# 的帖子

什么事断点,给个易懂例子好不?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-8-11 10:44:06 | 只看该作者

回复 1# 的帖子

在你的Function里面的这一句set ReadXml=rootNode  已经给你的函数赋值了 也就是说ReadXml("D:\getmessage[1].xml" )=nothing是不对的 你只是释放了set xmlDoc=Nothing,xmlDoc才是为nothing的
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-14 15:14 , Processed in 0.082174 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表