一、脚本源码
使用VBS脚本遍历XML文件
Option Explicit
'定义常量
Const NodeElement = 1 '元素
Const NodeText = 3 '文本
Const NodeCDATA = 4 'CDATA
Const NodeEntityRef = 5 '实体引用
Const NodeEntity = 6 '实体
Const NodeCommand = 7 '处理指令
Const NodeComment = 8 '注释
Const NodeDOCTYPE = 10 '文档类型
'遍历文件 NameList.xml
WScript.Echo VbCrLf
WScript.Echo "开始遍历文件 NameList.xml"
Dim XDoc
Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.Load("NameList.xml")
ReadXmlNode xdoc, 0
WScript.Echo "遍历完毕"
'递归遍历结点信息 x:结点 lvl:层,从0开始计算
Sub ReadXmlNode(x, lvl)
Dim gap, child, i
gap = Space(lvl * 3)
'WScript.Echo gap & "< - - - -"
'输出结点类型
WScript.Echo gap & "TYPE: " & UCase(x.NodeTypeString), x.NodeName
'遍历属性
If x.NodeType = 1 Then
Dim Alist
Set Alist = x.Attributes
For i = 0 To Alist.Length - 1
Dim Attr
Set Attr = Alist.Item(i)
WScript.Echo gap & "ATTRIBUTE", Attr.NodeName, "=", Attr.NodeValue
Next
End If
'如果结点值不为空,显示结点值
If Not IsNull(x.NodeValue) Then _
WScript.Echo gap & "NODE_VALUE:", "'" & x.NodeValue & "'"
'递归遍历子结点
If x.HasChildNodes Then
For Each Child In x.ChildNodes
ReadXmlNode child, lvl + 1
Next
End If
'WScript.Echo gap & ">"
End Sub
二、运行结果
打开cmd,使用cscript运行VBS脚本
END