用QTP调用外部vbs读写XML的例子(一)
来源:互联网 发布:iframe不同端口 编辑:程序博客网 时间:2024/04/28 14:46
目前,企业中对XML的应用越来越广泛,作为自动化测试的测试工程师,也应该掌握XML的读写操作。
以下我使用XML DOM技术演示一个例子,用以读取XML指定节点的节点内容值。
读取函数原型 GetXml strXmlPath,nodeName
这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看
首先,新建一个vbs文件(取个名字叫readXml.vbs),输入代码:
'==================================================================
' Author : songfun
'
' Description : Read XML
'==================================================================
Dim strXML
GetXml "c:/search.xml","TestResult" '这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看
MsgBox strXML
Function GetXml (ByVal strXmlFilePath,ByVal xmlNodeName)
Dim xmlDoc,xmlRoot
Set xmlDoc = CreateObject("Microsoft.XMLDOM") '创建XML DOM对象
xmlDoc.async = False '控制加载模式为同步模式(xml树加载完毕后再执行后续代码)
xmlDoc.load strXmlFilePath '载入xml文件
If xmlDoc.parseError.errorCode <> 0 Then
MsgBox "XML文件格式不对,原因是:" & Chr(13) & xmlDoc.parseError.reason
Exit Function
End If
Set xmlRoot = xmlDoc.documentElement
xmlRecursion xmlRoot,xmlNodeName '调用xml递归函数传入指定的根和节点名
GetXml = True 'xmlRecursion (xmlRoot)
End Function
Function xmlRecursion(byval xmlNode,byval strNodeName)
If xmlNode.nodeName = strNodeName And xmlNode.hasChildNodes Then
If xmlNode.childNodes.item(0).nodeName = "#text" Then
strXML = strXML & xmlNode.nodeName & ":" & xmlNode.childNodes.item(0).nodeValue & Chr(13)
End If
End If
If xmlNode.hasChildNodes Then
For Each childNodeItem In xmlNode.ChildNodes
If childNodeItem.hasChildNodes Then
xmlRecursion childNodeItem,strNodeName
End If
Next
End If
End Function
接着,自己构造一个xml文件(取个名字叫search.xml),如:
<?xml version="1.0" encoding="GB2312"?>
<ROOT>
<TestCase>
<TestNumberOne>1</TestNumberOne>
<TestNumberTwo>2</TestNumberTwo>
<TestNumberThree>+</TestNumberThree>
<TestResult>3</TestResult>
</TestCase>
<TestCase>
<TestNumberOne>3</TestNumberOne>
<TestNumberTwo>2</TestNumberTwo>
<TestNumberThree>-</TestNumberThree>
<TestResult>1</TestResult>
</TestCase>
<TestCase>
<TestNumberOne>3</TestNumberOne>
<TestNumberTwo>7</TestNumberTwo>
<TestNumberThree>*</TestNumberThree>
<TestResult>21</TestResult>
</TestCase>
<TestCase>
<TestNumberOne>2</TestNumberOne>
<TestNumberTwo>5</TestNumberTwo>
<TestNumberThree>/</TestNumberThree>
<TestResult>0.4</TestResult>
</TestCase>
</ROOT>
然后,在QTP的expert view中调用刚才写的vbs文件:
executefile "c:/readXml.vbs"
点“Run”,就能看到这个效果了。
当然,如果你不用调用外部文件的方式,也可以,如下图。
- 用QTP调用外部vbs读写XML的例子(一)
- [转]用QTP调用外部vbs读写XML的例…
- QTP调用.VBS
- QTP-读写外部文本文件
- QTP---VBS 读取XML中 对应标签的 值
- 【QTP】把外部VBS写入resource中
- QTP中读写xml的组件
- JavaScript学习(一)——调用内部js和外部js的例子
- QTP常用的vbs函数
- JDOM读写XML的例子
- QTP调用vbs脚本写入日志
- qtp调用vbs文件 打开应用程序
- QTP 解析外部的XML的环境变量文件
- QTP调用外部应用程序的4种方法
- javascript 使用VBArray (JS调用VBS的例子)
- QTP中new function library点了没反应, resources 加入vbs 不能调用的解决方法.
- QTP中VBS调用数据库的方式【mysql,sqlserver,oracle,excel】
- 通过java调用VBS,再用VBS执行Excel中的宏的例子
- php session 过期 设置
- 一棵开花的树
- 坐标系统总结
- flipcode——真是个不错的站点,单独推荐一下!
- 全面认识手机病毒
- 用QTP调用外部vbs读写XML的例子(一)
- 局域网的ip地址
- CListCtrl 几点经验
- 在OpenGL中怎样安装glut库
- charset changing
- Spring2.5+Struts2+Ibatis整合之二
- Spring2.5+Struts2+Ibatis整合之三
- 预防手机病毒六招有效方法
- 拨开自定义operator new与operator delete的迷雾