VBScript运行时错误91

时间:2011-07-19 03:29:23

标签: vbscript asp-classic

我正在尝试使用附加的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

1 个答案:

答案 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