Ошибка выполнения VBScript 91 - PullRequest
1 голос
/ 19 июля 2011

Я пытаюсь получить ключ, значение атрибута xml, используя прикрепленный код сценария VB

<configuration>
  <appSettings>
    <add key="DeviceConnectionPortNumber" value="5002"/>
    <add key="VirtualWintalkConnectionPortNumber" value="5100"/>
  </appSettings>
</configuration>

Всякий раз, когда я устанавливаю Nothing для объекта в коде сценария VB, я получаю следующую ошибку,Я разработал VBScript, используя функцию макросов Microsoft Word.Я собираюсь использовать этот код VBScript в ASP.Как решить эту проблему?

Ошибка выполнения 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 Ответ

1 голос
/ 19 июля 2011

Прошло некоторое время с тех пор, как я связался с VBScript, но я хочу быть уверен, что вы не можете изменить перечисляемое значение, которое вам предоставляет цикл "Для каждого". То же самое в .NET.

UPDATE:

Да, я ржавый, вам нужно "Установить", прежде чем объект, который вы устанавливаете в Ничто.

Попробуйте это ...

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
...