标题: 【已解决】如何用vbs读取xml节点的值? [打印本页] 作者: topor 时间: 2009-8-10 11:23 标题: 【已解决】如何用vbs读取xml节点的值? xml 中的节点如下所示: <abc>123456</abc>
已经用循环语句定位到abc这个节点了,如下:strName="abc"
Sub rTravel (rNode)
Dim blnTwo,childName
blnTwo = False
iLen = rNode.childNodes.length
If iLen > 0 Then
For i = 0 To rNode.childNodes.length -1
Set child = rNode.childNodes.item(i)
Call rTravel(child)
childName=child.nodeName
If strName=childName then
MsgBox childName
childText = child.nodeValue
strXML = strXML & childText & chr(13)
MsgBox strXML
Exit Sub
End if
Next
Else
Exit Sub
End If
End Sub
但是msgbox 出来的值都是空的?
还有红色标识的第二句话是什么作用呀?如果只是用msgbox childText会提示error,但是有了第二句话之后就没有error,可以运行通过,只是msgbox出来的值是空的。
abc 跟123456的关系是node name 跟node value的关系吗?谢谢先!
[ 本帖最后由 topor 于 2009-8-10 15:13 编辑 ]作者: nbkhic 时间: 2009-8-10 13:03
Function readConfig(byval path, byval nodeName)
Set xmlDoc = Nothing
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
'loadXML
xmlDoc.load(path)
Set root = xmlDoc.documentElement
Set objChildNodes = root.getElementsByTagName(nodeName)'Getting nodes collection
Dim num, res
Set res = CreateObject("scripting.dictionary")'新建字典
num = objChildNodes.length'获取Nodes集合的个数
For i = 0 To (num - 1)'循环为字典赋值
res.Add objChildNodes(i).firstChild.text, objChildNodes(i).lastChild.text
Next
set xmlDoc = Nothing
Set readConfig = res
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
我写的一个读取xml文件的函数,主要功能是读取config.xml文件中的配置信息,从而实现数据的动态配置。你参考下,应该能解决你的疑虑。作者: topor 时间: 2009-8-10 14:00
参考了楼上的,果然是把
childText = child.nodeValue
改成
childText = child.text
就可以了,谢谢啦!作者: csj 时间: 2010-6-7 09:33 标题: 回复 2# 的帖子 写个读取接点属性值的例子吧?