Я имею проблему разрешения объекта oList с моим CreateObject("System.Collections.ArrayList")
VBScript System.Collections.ArrayList Объект не поддерживает ... list.Add
Я получаю ошибку в VBScript
"Microsoft VBScript runtime error: Object doesn't support this property or method: 'list.Add'"
основе this учебник Я знаю, вы можете использовать COM-wrapped. Net компоненты в vbscript; так почему это не будет работать?
Дополнительная информация:
Когда я отладки в VS08 и добавить часы в список, он говорит Children could not be evaluated.
Часы для objNode.value
имеет значение строки в два символа. (Что является ожидаемым поведением)
Function ProcessXML(oXML)
STOP
xPathExemptions= "//Exemption/@ExemptCodeWord"
Dim xmlDoc : Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
xmlDoc.Async = False
xmlDoc.loadXML(oXML)
Dim colNodes
Set colNodes = xmlDoc.selectNodes(xPathExemptions)
Dim oList
Set oList = CreateObject("System.Collections.ArrayList")
Dim objNode
For Each objNode in colNodes
oList.Add = objNode.value
Next
'ProcessExemptions = CStr(xmlDoc.selectNodes(xPathExemptions))
End Function
Если у вас есть комментарии к моему vbscript; пожалуйста, дайте мне знать - только начали учиться и не знают лучших практик.
Я попробую это на работе завтра и дам вам точки успеха. Как странно, что вы вызываете функцию без() операторов, и выполняете задание без a =. Vbscript является ... другим .. Язык –
** xphill64x ** - На самом деле, функция VBScript 'Function' (которая возвращает значение) *** *** требует, чтобы ее аргументы были окружены скобками. Как ни странно, однако, с 'Sub' (который не ** возвращает ** значение), круглые скобки опущены. См. [Мой ответ здесь] (http://stackoverflow.com/a/11371416/1497596) для руководства по загрузке всеобъемлющей ссылки VBScript в виде файла справки Windows. Наконец, обратите внимание, что 'oList.Add' *** является ***' Sub' с единственным аргументом. И это '=' служит двойной роли как оператора присваивания, так и для проверки на равенство. – DavidRR
@DavidRR Нет. Должны ли использоваться круглые скобки, зависит от того, как вызывается процедура или функция. Если * функция * вызывается без оценки возвращаемого значения (например, «MyFunction 23, 42'), то скобки ** не должны использоваться **. OTOH, если вызывается * процедура * с использованием оператора 'Call' (например,' Call MySub (23, 42) '), то ** должны использоваться **. Для получения дополнительной информации см. Статью Эрика Липперта (http://blogs.msdn.com/b/ericlippert/archive/2003/09/15/52996.aspx) на использование круглых скобок в VBScript. –