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

如何用PowerShell将XML中提取的ORGID转为逗号分隔字符串

问题描述

现有XML数据如下:

<data>
    <ValueSet Version="6.6">
        <entry key="ORGID">
            <Value>852357951364</Value>
        </entry>
        <entry key="MESSAGE_CODE">
            <Value>MESSAGE1</Value>
        </entry>
        <entry key="REVERSAL">
            <Value>REVERSAL1</Value>
        </entry>
    </ValueSet>
    <ValueSet Version="6.6">
        <entry key="ORGID">
            <Value>852357951365</Value>
        </entry>
        <entry key="MESSAGE_CODE">
            <Value>MESSAGE2</Value>
        </entry>
        <entry key="REVERSAL">
            <Value>REVERSAL2</Value>
        </entry>
    </ValueSet>
</data>

使用以下PowerShell脚本提取ORGID值:

$XMLfile = 'C:\Users\XML_Input.xml'
Select-Xml -Path $XMLfile -XPath '//entry[@key="ORGID"]' | foreach {$_.node.Value}

执行后输出为逐行形式:
852357951364
852357951365
需要将输出改为单行逗号分隔形式:852357951364,852357951365

解决方案

修改后的脚本如下:

$XMLfile = 'C:\Users\XML_Input.xml'
# 收集所有ORGID值到数组,再用逗号连接成单行字符串
$orgIds = Select-Xml -Path $XMLfile -XPath '//entry[@key="ORGID"]' | ForEach-Object { $_.node.Value }
$orgIds -join ','

也可以简化为单行写法:

$XMLfile = 'C:\Users\XML_Input.xml'
(Select-Xml -Path $XMLfile -XPath '//entry[@key="ORGID"]' | ForEach-Object { $_.node.Value }) -join ','

说明

  • 先通过Select-Xml和ForEach-Object把所有ORGID值收集到一个数组中
  • 利用PowerShell的-join运算符,将数组元素用逗号连接成单个字符串,实现单行输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:56:00