我在使用CreateObject("System.Collections.ArrayList")
我在vbscript中得到的错误
“Microsoft VBScript运行时错误:对象不支持此属性或方法:'list.Add'”
基于this教程,我知道你可以在vbscript中使用COM包装的.Net组件;那么为什么这不起作用?
其他信息:
当我在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有任何意见;请让我知道 - 刚开始学习并且不了解最佳实践。
答案 0 :(得分:3)
更改:强>
oList.Add = objNode.value
<强> ...为:强>
oList.Add objNode.value
或 (感谢@Ansgar的指导)
Call oList.Add(objNode.value)
以下是演示:
Option Explicit
Dim oList : Set oList = CreateObject("System.Collections.ArrayList")
oList.Add "Banana"
oList.Add "Apple"
oList.Add "Orange"
oList.Add "Grapes"
oList.Add "Plum"
oList.Sort
Dim oItem
For Each oItem In oList
WScript.Echo oItem
Next
预期输出:
Apple
Banana
Grapes
Orange
Plum
您可以在Eric Lippert的informative article中找到有关使用括号的古怪规则与VB和VBScript的更多信息。