我有来自XML的2d数组。 XML的一个例子:
<string-array name="array1">
<field name="City" type="string">Moscow</field>
<field name="Id" type="number">10</field> (p.s. ID is unique within array)
<field name="Version" type="number">2</field>
.......
</string-array>
引用它:
For i=0 to NodeK.length-1
array1(0,i)=NodeK(i).getAttribute("name")
array1(1,i)=NodeK(i).text
Next
所以2d数组看起来像:
array1(0,0)="City"
array1(1,0)="Moscow"
array1(0,1)="ID"
array1(1,1)=10
array1(0,2)="Version"
array1(1,2)=2
任务是获取ID的值,以便进一步使用它(在SysId变量中)。以下代码无法正常运行
For i=LBound(array1,1) to Ubound (array1,1)
For j=Lbound(array1,2) to Ubound(array1,2)
if j=0 then
if array(i,0)="ID" Then
SysID=array(i,1)
MsgBox "New ID is: " & ID, 64
end if
End If
Next
Next
一旦找到值(在我们的例子中为ID = 10),循环就应该退出。 提前谢谢!
答案 0 :(得分:0)
只需将数组写为表
City ID Version
Moscow 10 2
然后你看到你需要循环'第0行的'cols'找到密钥并找到相应的'col of row 1'来获取值。
在代码中:
Option Explicit
Dim array1(1, 2)
array1(0,0)="City"
array1(1,0)="Moscow"
array1(0,1)="ID"
array1(1,1)=10
array1(0,2)="Version"
array1(1,2)=2
Dim sFnd : sFnd = "ID"
Dim i
For i = 0 To UBound(array1, 2)
WScript.Echo array1(0, i)
If sFnd = array1(0, i) Then
WScript.Echo array1(0, i), "=>", array1(1, i)
Exit For
End If
Next
输出:
cscript 22862344.vbs
City
ID
ID => 10