文档章节

VBS脚本学习:遍历XML文档

北风其凉
 北风其凉
发布于 2014/08/23 14:12
字数 261
阅读 82
收藏 1

一、脚本源码

使用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

© 著作权归作者所有

北风其凉

北风其凉

粉丝 120
博文 497
码字总数 462305
作品 4
朝阳
程序员
私信 提问
VBS 脚本中的字典、动态数组、队列和堆栈

今天用VBS脚本写了几个程序,用到了字典(Dictionary)、动态数组(ArrayList)、队列(Queue)和堆栈(Stack)。现在写篇Blog总结一下 :-) 1.编写环境 今天突发奇想下载了个gVim来写VBS脚...

北风其凉
2014/12/30
301
0
UFT入门教程(7)—设置对象标识、启动系统监控器

一、设置对象标识 二、本地系统监控器 1.点击菜单栏“文件”-“设置”-“本地对象监控器” 2.在运行结果中点击“查看”-“系统监控器”查看系统监控结果 3.结果(通过循环录制脚本的运行步骤...

iBazinga
2016/09/19
63
0
如何用VBS编写一个简单的恶搞脚本

windows系统的电脑, 首先右击桌面,选择新建-文本文档,在桌面上新建一个文本文档; image.png 随后打开计算机或者是我的电脑,点击其中的组织(xp系统多为工具),选择下面的文件夹和搜索选...

_周小董
2017/12/04
0
0
VBS脚本 - 实现一键停止Oracle相关服务

自从安装了Oracle数据库后,我电脑的运行速度满了很多。为此我想了一个办法,让我在不需要使用Oracle数据库的时候,可以轻松地关掉Oracle相关服务。 我安装的Oracle版本为Oracle11g,与Oracl...

北风其凉
2016/01/14
360
2
Windows获取CPU、内存和磁盘使用率脚本

获取CPU使用率脚本(vbs),另存为cpu.vbs: On Error Resume NextSet objProc = GetObject("winmgmts:\.rootcimv2:win32_processor='cpu0'")Wscript.Echo "CPU 使用率: " & objProc.LoadPer......

初级泥水工
2017/03/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

读书笔记:深入理解ES6 (五)

第五章 解构:使数据访问更便捷 第1节 为什么使用解构功能?   在ES5中,开发者们从对象、数组中获取特定数据并赋值给变量,编写了很多看起来同质化的代码。例如: 1 let options = {2 ...

张森ZS
29分钟前
24
0
CentOS7 yum方式安装MySQL5.7

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1 下载并安装MySQL官方的 Yum Repository [root@localho...

roockee
37分钟前
15
0
Allegro三种自定义设置快捷键的方法

Allegro自定义设置快捷键的三种方法: 1、在Allegro PCB editor 命令窗口直接定义 2、通过修改用户变量env文件来设置快捷键 3、定义笔画为快捷键 1、在Allegro PCB editor 命令窗口直接定义 ...

demyar
42分钟前
18
0
如何做一张能让人眼前一亮的大屏?

作为在职场驰骋的社会人,提到数据可视化大家应该都不陌生了。数据可视化的作用也不用我多说,主要是利用图形化手段,更清晰直观地将数据展示。多层次、交互式的可视化分析能够方便决策者理解...

朕想上头条
42分钟前
9
0
TL138/1808/6748-EthEVM开发板硬件CPU、FLASH、RAM

TL138/1808/6748-EthEVM是广州创龙基于SOM-TL138/1808/6748核心板开发的一款开发板,具有三个网络接口。由于SOM-TL138/1808/6748核心板管脚兼容,所以此三个核心板共用同一个底板。开发板采用...

Tronlong创龙
47分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部