我有以下格式的xml文件:
<summary>
<start>2013-12-03 12:24:35,785</start>
<end>2013-12-03 12:34:34,107</end>
<duration unit="minutes">10</duration>
<transactions>2716</transactions>
<throughput unit="Transactions per second">4.53</throughput>
<APIs>
<API name=" USER_LOGIN">
<mean>687.4</mean>
<median>603</median>
<stdDev>308.71</stdDev>
<minimum>553</minimum>
<maximum>2009</maximum>
<count>57/2716 (2.1%)</count>
<successCount>57</successCount>
<failureCount>0</failureCount>
</API>
<API name=" APP_SETTINGS_GET">
<mean>496.23</mean>
<median>474</median>
<stdDev>53.94</stdDev>
<minimum>446</minimum>
<maximum>704</maximum>
<count>57/2716 (2.1%)</count>
<successCount>57</successCount>
<failureCount>0</failureCount>
</API>
</APIs>
</summary>
使用上面的xml,我需要绘制所有&#34; mean&#34;内部存在的节点&#34; API&#34; Jenkins plot插件中的一个图中的节点。谁能帮助我构建xpath以获得所有&#34;意思是&#34;节点?
谢谢, Mamatha
答案 0 :(得分:0)
你可以尝试/summary/APIs/API/mean
,但我很确定你会得到两个名为“mean”的系列,这是非常无意义的。
或者,如果你想从上面的例子中得到两个系列,一个名为“USER_LOGIN”而另一个名为“APP_SETTINGS_GET”,你可以将Xml变成一个CSV文件并让插件使用它。如果你在Windows上,这个Powershell脚本会这样做(假设你的Xml在input.xml
中):
$csvObject = New-Object PSObject
Select-Xml -Path input.xml -Xpath "/summary/APIs/API" |
select -ExpandProperty node |
For-Each { Add-Member -InputObject $csvObject -MemberType NoteProperty -Name $_.name -Value $_.mean }
Export-Csv -Path means.csv -InputObject $csvObject -NoTypeInformation
这只会生成一个如下所示的CSV文件:
"USER_LOGIN","APP_SETTINGS_GET"
"687.4","496.23"
然后将其导入为CSV系列: