|
目前,企业中对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”,就能看到这个效果了。
当然,如果你不用调用外部文件的方式,也可以,如下图。
[ 本帖最后由 songfun 于 2007-5-19 13:46 编辑 ] |
|