我正在尝试使用附加的VB脚本代码获取xml的key,value属性
<configuration>
<appSettings>
<add key="DeviceConnectionPortNumber" value="5002"/>
<add key="VirtualWintalkConnectionPortNumber" value="5100"/>
</appSettings>
</configuration>
每当我将Nothing设置为VB脚本代码中的对象时,我都会收到以下错误。我使用Microsoft Word的宏功能开发了vbscript。我将在ASP中使用此vbscript代码。我该如何解决这个问题?
运行时错误91: 未设置对象变量或块变量。
Sub Manu_Parse()
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.Load ("c:\Web.Config.xml")
Set appSettingsNode = objXMLDoc.documentElement.FirstChild
Set parameterNodes = appSettingsNode.ChildNodes
For Each parameterNode In parameterNodes
keyName = parameterNode.getAttribute("key")
If keyName = "DeviceConnectionPortNumber" Then
keyVal = parameterNode.getAttribute("value")
parameterNode = Nothing
Exit For
End If
parameterNode = Nothing
Next
parameterNodes = Nothing
sappSettingsNode = Nothing
objXMLDoc = Nothing
End Sub
答案 0 :(得分:1)
自从我搞砸了VBScript以来已经有一段时间了,但是我很愿意你不能改变“For Each”循环提供给你的枚举值。它在.NET中也是一样。
<强>更新强>
是的,我生锈了,你需要在设置为Nothing的对象之前“设置”。
试试这个......
Sub Manu_Parse()
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.Load ("c:\Web.Config.xml")
Set appSettingsNode = objXMLDoc.documentElement.FirstChild
Set parameterNodes = appSettingsNode.ChildNodes
For Each parameterNode In parameterNodes
keyName = parameterNode.getAttribute("key")
If keyName = "DeviceConnectionPortNumber" Then
keyVal = parameterNode.getAttribute("value")
'parameterNode = Nothing
Exit For
End If
'parameterNode = Nothing
Next
Set parameterNodes = Nothing
Set sappSettingsNode = Nothing
Set objXMLDoc = Nothing
End Sub