0
对于下面的xml,我想要p50,p90,p95和p99的百分点值的SelectSingleNode的正确方法是什么。我也有很多人,所以我循环他们,但我只得到了第一个VBS singleselectnode循环
<Measure>
<Class>Timer</Class>
<Name>EMF-01-Launch</Name>
<Type>Response time[s]</Type>
<Unit>Seconds</Unit>
<Timebound1>0.000000000</Timebound1>
<Timebound2>0.000000000</Timebound2>
<IDMeasureType>3</IDMeasureType>
<IDMeasureClass>2</IDMeasureClass>
<TypeDisplayStr>Response time[s]</TypeDisplayStr>
<SumCount1>34778.000000000</SumCount1>
<SumCount2>20619.000000000</SumCount2>
<SumSum>2885.826000000</SumSum>
<SumSqSum>1084.245452000</SumSqSum>
<MinMin>0.031000000</MinMin>
<MaxMax>5.866000000</MaxMax>
<Avg>0.139959552</Avg>
<Stdd>0.181648280</Stdd>
<SumTimeboundCount1>
<Percent>0.000000000</Percent>
0
</SumTimeboundCount1>
<SumTimeboundCount2>
<Percent>0.000000000</Percent>
0
</SumTimeboundCount2>
<SortNo>0</SortNo>
<Percentiles>
<ID>0</ID>
<Values>
<Value>
<Percent>50</Percent>
<Value>0.109000000</Value>
</Value>
<Value>
<Percent>90</Percent>
<Value>0.235000000</Value>
</Value>
<Value>
<Percent>95</Percent>
<Value>0.314000000</Value>
</Value>
<Value>
<Percent>99</Percent>
<Value>0.784000000</Value>
</Value>
</Values>
</Percentiles>
For Each SNode in scriptNodes
scriptName = SNode.SelectSingleNode("Name").text
'For each measure of type Timer
Set timerNodes = SNode.selectNodes("Measures/Measure")
'msgbox (timerNodes.length)
For Each TNode in timerNodes
If TNode.SelectSingleNode("Class").text = "Timer" then
' Extract the timer data
timerName = TNode.SelectSingleNode("Name").text
min = TNode.SelectSingleNode("MinMin").text
avg = TNode.SelectSingleNode("Avg").text
max = TNode.SelectSingleNode("MaxMax").text
stDev = TNode.SelectSingleNode("Stdd").text
count = TNode.SelectSingleNode("SumCount2").text
p50 = TNode.SelectSingleNode("Percentiles/Values/Value[1]/Value").text
msgbox (p50)
p90 = TNode.SelectSingleNode("//Percentiles/Values/Value[2]/Value").text
p95 = TNode.SelectSingleNode("//Percentiles/Values/Value[3]/Value").text
p99 = TNode.SelectSingleNode("//Percentiles/Values/Value[4]/Value").text
'Write to File
fileHandle.WriteLine(scriptName+","+timerName+","+min+","+avg+","+max+","+stDev+","+count+","+p50+","+p90+","+p95+","+p99)
end if
Next 'TNode in timerNodes
Next 'SNode in scriptNodes
fileHandle.Close
我只得到的数据只是第一个环和下一个重复的第一环体 – Zack