Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MsXMl selectNodes返回多余的节点_Xml_Excel_Vba_Msxml_Selectnodes - Fatal编程技术网

MsXMl selectNodes返回多余的节点

MsXMl selectNodes返回多余的节点,xml,excel,vba,msxml,selectnodes,Xml,Excel,Vba,Msxml,Selectnodes,我有这个VBA脚本,我写的自动化表格的自动化结果。我尝试解析的节点示例如下所示: > <test id="41"> > <name>7.1.1.4_BandI_PS</name> > <ttcnTestCaseName>7.1.1.4</ttcnTestCaseName> > <numberOfIterations>1</numberO

我有这个VBA脚本,我写的自动化表格的自动化结果。我尝试解析的节点示例如下所示:

> <test id="41">
>           <name>7.1.1.4_BandI_PS</name>
>           <ttcnTestCaseName>7.1.1.4</ttcnTestCaseName>
>           <numberOfIterations>1</numberOfIterations>
>           <failureAction selected="Continue"/>
>           <runMode>Normal</runMode>
>           <testPicsPixitDeviation>
>             <picsPixitDeviationTag>BandI</picsPixitDeviationTag>
>             <picsPixitDeviationTag>PS</picsPixitDeviationTag>
>             <picsPixitDeviationTag>NonCipher</picsPixitDeviationTag>
>         </testPicsPixitDeviation>
>           <comment/>
>           <result iterationIndex="0" repeatIndex="0">
>             <status>
>               <status>Passed</status>
>             </status>
>             <resultLocation>C:\result_arch\MAC_D12wk47_v10-tc_7_1_1_4_2013-01-07_15.18.27</resultLocation>
>             <startTime>2013-01-07_15.18.26</startTime>
>             <executionDuration>120</executionDuration>
>             <ptsIpAddress>127.0.0.1</ptsIpAddress>
>           </result>
>         </test>
>         <test id="42">
>           <name>7.1.1.8_BandI_CS</name>
>           <ttcnTestCaseName>7.1.1.8</ttcnTestCaseName>
>           <numberOfIterations>1</numberOfIterations>
>           <failureAction selected="Continue"/>
>           <runMode>Normal</runMode>
>           <testPicsPixitDeviation>
>             <picsPixitDeviationTag>BandI</picsPixitDeviationTag>
>             <picsPixitDeviationTag>CS</picsPixitDeviationTag>
>             <picsPixitDeviationTag>NonCipher</picsPixitDeviationTag>
>         </testPicsPixitDeviation>
>           <comment/>
>           <result iterationIndex="0" repeatIndex="0">
>             <status>
>               <status>Passed</status>
>             </status>
>             <resultLocation>C:\result_arch\MAC_D12wk47_v10-tc_7_1_1_8_2013-01-07_15.20.27</resultLocation>
>             <startTime>2013-01-07_15.20.27</startTime>
>             <executionDuration>104</executionDuration>
>             <ptsIpAddress>127.0.0.1</ptsIpAddress>
>           </result>
>         </test>

一切正常,但变量testCaseResultList应该返回每个节点中包含的列表,而不是从任何其他节点返回。我不知道我做错了什么。

尝试
//result
,因为它将返回上下文节点(testCase指向的节点)的所有“result”后代,或者只返回
result
,它将返回上下文节点的所有“result”子节点(但不会返回孙子、曾孙等)

使用
//result
返回文档根的所有“result”子体,该子体将返回文档中的每个“result”节点

类似地,
//numberOfIterations
(返回文档根的所有“numberOfIterations”后代)应替换为
//numberOfIterations
或仅替换为
numberOfIterations


有关更多详细信息,请参阅上的缩写语法指南

youa life saver@barrowc。我不得不使用flappy方法进行迭代。谢谢这个提示。现在使用.SelectNodesThank可以正常工作了。谢谢,这与xpath的Python lxml和XmlDocument实现不同,让我很扫兴!(在Python中,只获取子体不需要前导点。)
Dim testCase As MSXML2.IXMLDOMNode
For Each testCase In testCaseNamesList
    Dim passed, failed, error, totalRunTime, iterationCount As Integer
    Dim passPcnt, failPcnt, errorPcnt, averageRunTime As Double
    Dim testCaseName As String
    Dim testCaseResultList As MSXML2.IXMLDOMNodeList


    Set testCaseResultList = testCase.SelectNodes("//result")
    MsgBox (testCaseResultList.Length)

    testCaseName = testCase.FirstChild.Text
    iterationCount = CInt(testCase.SelectSingleNode("//numberOfIterations").Text)

    Dim testCaseResult As MSXML2.IXMLDOMNode
    For Each testCaseResult In testCaseResultList