摘要: 目前,企业中对XML的应用越来越广泛,作为自动化测试的测试工程师,也应该掌握XML的读写操作。以下我使用XML DOM技术演示一个例子,用以读取XML指定节点的节点内容值。读取函数原型 GetXml strXmlPath,nodeName这个 ...
目前,企业中对XML的应用越来越广泛,作为自动化测试的测试工程师,也应该掌握XML的读写操作。 以下我使用XML DOM技术演示一个例子,用以读取XML指定节点的节点内容值。 读取函数原型 GetXml strXmlPath,nodeName 这个函数的第一个参数表示xml文件所在路径,第二个参数表示希望获取到的xml节点名,请结合下列例子看 首先,新建一个vbs文件(取个名字叫readXml.vbs),输入代码:CODE: '================================================================== ' 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),如:CODE: <?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”,就能看到这个效果了。 当然,如果你不用调用外部文件的方式,也可以,如下图。
|