You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于XML属性分组、求和与排序的PowerShell脚本编写求助

PowerShell脚本实现XML数据分组求和与排序需求

没问题,这就给你写个针对性的PowerShell脚本,完美实现你要的功能:筛选oc="AU"的节点、按dc分组求和tp、最后按求和结果降序排序。

完整脚本示例

# 加载XML数据(这里假设你的XML存储在文件中,替换成你的文件路径)
$xml = [xml](Get-Content -Path "your_xml_file.xml")

# 处理逻辑:筛选oc=AU的节点 -> 按dc分组 -> 求和tp -> 降序排序
$result = $xml.SelectNodes("//*[@oc='AU']") | 
    Group-Object -Property @{ Expression = { $_.dc } } | 
    ForEach-Object {
        [PSCustomObject]@{
            dc = $_.Name
            total_tp = ($_.Group | Measure-Object -Property tp -Sum).Sum
            oc = "AU"  # 保留oc属性标识
        }
    } | Sort-Object -Property total_tp -Descending

# 输出结果(可以根据需要改成导出到CSV等格式)
$result

关键部分解释

  • 加载XML:用[xml]类型转换器把文件内容转换成XML对象,方便后续节点操作;如果你的XML是直接存在变量里的,直接替换这部分即可。
  • 筛选节点:用XPath表达式//*[@oc='AU']精准定位所有oc属性为"AU"的节点。
  • 分组求和:
    • Group-Object按dc属性分组,这里用脚本块指定分组依据是节点的dc属性值;
    • 对每个分组,用Measure-Object计算tp属性的总和,包装成自定义对象输出。
  • 排序:Sort-Object按total_tp字段降序排列,满足你要的排序需求。

扩展用法

如果需要把结果导出到CSV文件,只需要在最后加一行:

$result | Export-Csv -Path "AU_tp_summary.csv" -NoTypeInformation

内容的提问来源于stack exchange,提问作者Vivek Chauhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:17:50