VB里面如何通过MSXML2.DOMDocument对象来获得XML文档中指定节点的值?

例如:在下面的这个XML中,需要获得所有item元素下的labelText属性的值跟value属性的值,并存到个2个对应的数组中。
<screen>
<list labelText="list" value="list">
<item src="1.png" labelText="A" value="A"/>
<item src="2.png" labelText="B" value="B"/>
<item src="3.png" labelText="C" value="C"/>
<item src="4.png" labelText="D" value="D"/>
<item src="5.png" labelText="E" value="E"/>
</list>
</screen>

第1个回答  2011-08-08
<%
'ASP中的VBScript并不是VB,不过应该区别不大

‘定义变量
Dim oXml
Dim arrText, arrValue, sFGF
sFGF = "$$"
’创建XMLDOM对象
Set oXml = Server.CreateObject("Microsoft.XMLDOM")
‘设置异步读取文件
oXml.async=False
’读取文件
oXml.load Server.MapPath("aul.xml")
‘设置变量 节点类型的
Dim oNodes, oNode
’得到节点集合放入oNodes变量中
‘ SelectNodes()方法接受一个XPath参数可以搜索到你想要的节点集合
‘这里的 XPath是 "//screen/list/item"
Set oNodes = oXml.documentElement.SelectNodes("//screen/list/item")
‘迭代
For Each oNode In oNodes
字符串拼接,因为VBScript Array没push()方法
arrText = arrText & oNode.getAttributeNode("labelText").nodeValue & sFGF
arrValue = arrValue & oNode.getAttributeNode("value").nodeValue & sFGF

Next
' 去掉最后的分隔符后再用Split()将字符串转换为数组得到结果
If arrText <> "" Then
arrText = Mid(arrText, 1, Len(arrText)-Len(sFGF))
arrText = Split(arrText, sFGF)
End If
If arrValue <> "" Then
arrValue = Mid(arrValue, 1, Len(arrValue)-Len(sFGF))
arrValue = Split(arrValue, sFGF)
End if

Set oNodes = Nothing
Set oXml = Nothing

' arrText, arrValue 就是结果了
‘ 输出一下测试
Response.Write arrValue(0)
' 上面的是ASP服务器端读取xml的代码。给你参考
%>本回答被网友采纳