<Report TcName=" Testing" >
<TestSuite Desc="ADI [UK]">
<TestCase TcName=" Testing" >
<Step ID="Step 1" Desc=" ">
<StepDetails Status="4" StepType="Step">Step 1 Info </StepDetails>
<StepDetails Status="3" StepType="Step">Step 1 Warning </StepDetails>
<StepDetails Status="1" StepType="Step">Step 1 passed </StepDetails>
<StepHeader StepType="STEPHEADER" Status="2">
<StepDetails StepType="STEPHEADER">Step Header 1 Info </StepDetails>
<StepDetails Status="3" StepType="STEPHEADER">Step Header 1 Warning </StepDetails>
<StepDetails Status="1" StepType="STEPHEADER">Step Header 1 passed </StepDetails>
<StepDetails Status="2" StepType="STEPHEADER" ScreenShotPath="D:\Git\automation\Projects\SOA\ADI\Reports\_Screenshots\ADI_UK_SOA-API_QAT2_201442110481\ADI SOA-API 4_21_2014 10_48_09 AM.png">Step Header 1 failed </StepDetails>
<StepDetails Status="4" StepType="STEPHEADER">Step Header 1 DONE </StepDetails>
<StepHeader>
<StepDetails Status="4"StepType="STEPHEADER">Step Header 2 Info </StepDetails>
<StepDetails Status="3"StepType="STEPHEADER">Step Header 2 Warning </StepDetails>
<StepDetails Status="1" StepType="STEPHEADER">Step Header 2 passed </StepDetails>
</StepHeader>
</StepHeader>
</Step>
</TestCase>
</TestSuite>
</Report>
如何在我的例子中获取节点&#34; [StepHeader]&#34;作为在vbscript中动态添加新子节点的对象,我使用QTP创建XML文件。
答案 0 :(得分:0)
使用.selectSingleNode和合适的XPATH查询来选择节点,使用.createElement创建一个新的StepDetails元素,使用.appendChild将元素追加到找到的节点:
Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
Dim sFSpec : sFSpec = goFS.GetAbsolutePathName("..\testdata\xml\23193903.xml")
Dim objMSXML : Set objMSXML = CreateObject("Msxml2.DOMDocument")
objMSXML.setProperty "SelectionLanguage", "XPath"
objMSXML.async = False
objMSXML.load sFSpec
If 0 = objMSXML.parseError Then
Dim sXPath : sXPath = "/Report/TestSuite/TestCase/Step/StepHeader/StepHeader"
Dim ndFnd : Set ndFnd = objMSXML.selectSingleNode(sXPath)
If ndFnd Is Nothing Then
WScript.Echo sXPath, "not found"
Else
WScript.Echo ndFnd.xml
ndFnd.AppendChild objMSXML.createElement("StepDetails")
WScript.Echo ndFnd.xml
End If
Else
WScript.Echo objMSXML.parseError.reason
End If
输出:
<StepHeader>
<StepDetails Status="4" StepType="STEPHEADER">Step Header 2 Info </StepDetails>
<StepDetails Status="3" StepType="STEPHEADER">Step Header 2 Warning </StepDetails>
<StepDetails Status="1" StepType="STEPHEADER">Step Header 2 passed </StepDetails>
</StepHeader>
<StepHeader>
<StepDetails Status="4" StepType="STEPHEADER">Step Header 2 Info </StepDetails>
<StepDetails Status="3" StepType="STEPHEADER">Step Header 2 Warning </StepDetails>
<StepDetails Status="1" StepType="STEPHEADER">Step Header 2 passed </StepDetails>
<StepDetails/></StepHeader>
使用Docs查找使用的功能。