使用ObjCreate("Microsoft.XMLDOM")读取xml时,关闭窗体报错[已解决]
本帖最后由 kinghu318 于 2010-9-19 11:13 编辑代码如下:$objXML = ObjCreate("Microsoft.XMLDOM")
$sFile = $objXML.load($strSourceFile)
if not $sFile then
MsgBox(16,"错误","加载"&$strSourceFile&"失败,文件不存在!!!")
Else
$objRootsite = $objXML.documentElement.selectSingleNode("NewList")
$AllNodesNum = $objRootsite.childNodes.length - 1
if $AllNodesNum > 0 Then
For $i = 0 to $AllNodesNum
$id = $i+1
$na=$objRootsite.childNodes.item($i).attributes.getNamedItem("name").value
$ms=$objRootsite.childNodes.item($i).childNodes.item(2).text
关闭窗体的时候报这个错误。因为我现在是操作多窗体使用的隐藏窗体Case $GUI_EVENT_CLOSE
Switch $nMsg
Case $WinMain
Exit
Case $SubForm
GUISwitch($SubForm)
GUISetState(@SW_HIDE)
Case $subformBF
GUISwitch($subformBF)
GUISetState(@SW_HIDE)
Case $txform
GUISwitch($txform)
GUISetState(@SW_HIDE)
EndSwitch是不是因为这个导致了错误啊?有什么解决方法,谢谢各位!!! 不用GUISwitch 回复 2# caodongchun
可是我要进行多窗体的操作,不用guiSwitch可以用其它的代替吗?您有没有什么好的办法啊? 我的意思是首先去掉guiSwitch是否报错?
用GUISetState ( ] )不可以吗?用的时候show,不用的时候hide 回复 4# caodongchun
我把guiSwitch都换成了guisetstate退出的时候还是报错误 读取xml不使用ObjCreate("Microsoft.XMLDOM")这个对象行不行啊?有其它方法吗? 不是很完整的代码无法运行和测试
Gui与obj有何联系? 回复 7# caodongchun ;写入xml
Func A_xml($time,$mess,$wavtype,$txCs,$wavfile);添加记录函数
$brstr= chr(13)&chr(10)&chr(9)
$objXML = ObjCreate("Microsoft.XMLDOM");创建XML对像
$sFile = $objXML.load("Contacts.xml");把XML文件读入内存中
if not $sFile then
MsgBox(16,"错 误","加载"&"Contacts.xml"&"失败,文件不存在!!!")
Return
EndIf
$objRootlist = $objXML.documentElement.selectSingleNode("NewList");选取<NewList>节点
$XMLnode = $brstr&"<list name='"&$time&"'>"&$brstr&"<mess>"&$mess&"</mess>"&$brstr& _
"<wavtype>"&$wavtype&"</wavtype>"&$brstr&"<txCs>"&$txCs&"</txCs>"&$brstr& _
"<wavfile>"&$wavfile&"</wavfile>"&$brstr&"</list>"&chr(13)
$objXML2= ObjCreate("Microsoft.XMLDOM");建立一个新XML对像
$objXML2.loadXML($XMLnode);把XML版片段读入内存中
$rootNewNode=$objXML2.documentElement;获得objXML2的根节点
$objRootlist.appendChild($rootNewNode);把XML片段插入到xml中
$objXML.save("Contacts.xml");存储xml文件(因为不存储xml只在内存中更新了)
$objXML=0
EndFunc这个是我调用的写入的方法,我测试了一下,只要我操作xml关闭的时候就报错 本帖最后由 caodongchun 于 2010-9-19 09:52 编辑
只要我操作xml关闭的时候就报错?
关闭窗体的时候?还是关闭obj的时候?
还有一点$objXML2最后没有赋予0值?
如果关闭窗体时报错请考虑做flag,当操作时flag值不允许关闭窗体,操作完毕flag才允许关闭窗体 回复 9# caodongchun
谢谢caodongchun的帮忙,问题已经找到了,原来是和皮肤有关,关闭窗体的时候没有close掉皮肤,很奇怪我没操作xml之前同样没关闭皮肤的$DLL,但是没报错,操作xml之后就报错。。。让我以为是窗体的原因。。。总之,谢谢caodongchun。。。 学习到了 知识
页:
[1]