目前,企業中對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”,就能看到這個效果了。如圖:
文章來源于領測軟件測試網 http://www.kjueaiud.com/