我有类似下面的XML,想要输出像。 如何编写powershell脚本以获得所需的输出
<onds>
<ond oc="AF" o="DXB" dc="GB" ds="London Heathrow" dfs="london-heathrow" tp="0" />
<ond oc="AE" o="DXB" dc="KW" ds="Kuwait" dfs="kuwait" tp="619730" />
<ond oc="AE" o="DXB" dc="PK" ds="Karachi" dfs="karachi" tp="1" />
<ond oc="AE" o="DXB" dc="IN" ds="Mumbai" dfs="mumbai" tp="465861" />
<ond oc="AE" o="DXB" dc="LB" ds="Beirut" dfs="beirut" tp="366572" />
<ond oc="AU" o="ADL" dc="GB" ds="London Heathrow" dfs="london-heathrow" tp="0" />
<ond oc="AU" o="ADL" dc="GB" ds="Manchester" dfs="manchester" tp="2" />
<ond oc="AU" o="ADL" dc="IT" ds="Rome" dfs="rome" tp="11978" />
<ond oc="AU" o="ADL" dc="FR" ds="Paris" dfs="paris" tp="10878" />
<ond oc="AU" o="ADL" dc="GB" ds="London Gatwick" dfs="london-gatwick" tp="1" />
<ond oc="AU" o="ADL" dc="IE" ds="Dublin" dfs="dublin" tp="8544" />
<ond oc="AU" o="ADL" dc="NL" ds="Amsterdam " dfs="amsterdam" tp="839000" />
<ond oc="AU" o="ADL" dc="GR" ds="Athens" dfs="athens" tp="7807" />
<ond oc="AU" o="ADL" dc="GB" ds="Glasgow" dfs="glasgow" tp="6998" />
<ond oc="AU" o="ADL" dc="AE" ds="Dubai" dfs="dubai" tp="6986" />
<ond oc="AU" o="ADL" dc="ES" ds="Barcelona" dfs="barcelona" tp="6231" />
<ond oc="AU" o="ADL" dc="GB" ds="Birmingham" dfs="birmingham" tp="6104" />
<ond oc="AU" o="ADL" dc="DE" ds="Frankfurt" dfs="frankfurt" tp="5122" />
<ond oc="AU" o="ADL" dc="IT" ds="Milan" dfs="milan" tp="4952" />
<ond oc="AU" o="ADL" dc="IT" ds="Venice" dfs="venice" tp="4357" />
<ond oc="AU" o="ADL" dc="DK" ds="Copenhagen" dfs="copenhagen" tp="4323" />
</onds>
输出应该像“dc”属性一样,使用相同的“oc”,即AU属性,然后根据“dc”参数求和tp,并在Powershell中降序排序
如果是oc =“AU”。
答案 0 :(得分:0)
首先,您必须向我们展示您尝试过的内容,以及未详细说明的内容。
其次,您必须知道如何将XML转换为可用于您的用例的内容。
这是一篇关于将XML转换为PSOject的好文章,因此您可以使用它。
将XML转换为PSObject
我无法找到点符号或XPath查询 提取属性/元素并将$ b转换回原始元素 PSObject。
完成所有转化后,它只使用PowerShell内置的常规分组功能。
见这篇文章
使用PowerShell Group-Object Cmdlet显示数据
学习使用Windows PowerShell的一个原因是 Windows PowerShell可以轻松地对数据进行切片和切块。它变成了 快速数据分析工具,允许网络管理员,分析师, 和其他人解析数据以快速发现和修复问题。它 也可用于审核基线信息,甚至用于检查 通过大量的统计数据。
允许此分析的一个cmdlet是Group-Object cmdlet。在 它是最基本的形式,Group-Object cmdlet接受来自的属性 管道中的对象,它收集与之匹配的组 属性并显示结果。例如,要检查状态 系统上的服务,管理Get-Service cmdlet的结果 到Group-Object cmdlet并使用Status属性。命令是 这里显示。
Get-Service | Group-Object -Property status