我在用CreateObject("System.Collections.ArrayList")
解决oList对象时遇到问题
我在vbscript 中得到的错误
"Microsoft VBScript运行时错误:对象不支持此属性或方法:"list.Add";
基于本教程,我知道您可以在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有任何意见;请告诉我-刚开始学习,不知道最佳实践。
更改:
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的资料性文章中找到更多关于VB和VBScript中使用括号的奇怪规则的信息。