释放XML对象后仍然可以用的问题,请高手指教
我的外部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.xml" ).SelectSingleNode("//charge/item/payid")
objExcel.Cells(2,12).value="'"+objtofind.text
。。。。。。。。。。。。。。。。。。
结果可以正常运行。在此我想问的是:
1,上面的Function中不是把xmlDoc释放掉了吗,也就是说ReadXml("D:\getmessage.xml" )=nothing了,为什么还可以用呢?
2,如果ReadXml("D:\getmessage.xml" )没被释放掉,那我该怎么释放这个东西呢?是不是直接set ReadXml("D:\getmessage.xml" )=nothing就可以了?
[ 本帖最后由 csj 于 2010-8-10 16:01 编辑 ] 1. 你试试断点。。。set xmlDoc=Nothing。能不能到这里
2. 没看懂你要干什么。。。把rootNode对象返回出来了,当然正常。。。
回复 2# 的帖子
什么事断点,给个易懂例子好不?回复 1# 的帖子
在你的Function里面的这一句set ReadXml=rootNode已经给你的函数赋值了 也就是说ReadXml("D:\getmessage.xml" )=nothing是不对的 你只是释放了set xmlDoc=Nothing,xmlDoc才是为nothing的
页:
[1]