如何将Invoke-WebRequest/Invoke-RestMethod返回的XML转为表格?
处理XML响应生成指定表格的PowerShell方法
你已经通过Invoke-RestMethod拿到了格式正常的XML响应,接下来可以直接利用PowerShell的XML解析能力提取所需字段,生成目标表格:
# 发起请求并获取XML响应 $xmlResponse = Invoke-RestMethod -Uri "http://SomeStoreName/npsharp/services/INP6Waycore/GetPosListXML" # 遍历所有<Pos>节点,提取指定属性并构建自定义对象 $posTable = $xmlResponse.PosList.Pos | ForEach-Object { [PSCustomObject]@{ 'Pos ID' = $_.id 'State' = $_.state 'BusinessDate' = $_.businessDate.Trim() # 去除字段首尾多余空格 'Alias' = $_.alias.Trim() } } # 输出整洁的表格 $posTable | Format-Table -AutoSize
关键逻辑说明:
Invoke-RestMethod会自动将XML响应解析为可直接操作的XML对象,省去手动处理字符串的麻烦- 通过
$xmlResponse.PosList.Pos直接定位到所有<Pos>节点的集合 - 用
ForEach-Object遍历每个节点,通过属性名(如$_.id)提取对应值,并用Trim()清理字段中的冗余空格 - 构建
PSCustomObject统一字段格式,最后用Format-Table输出规范的表格
如果需要将结果导出为CSV文件,可追加以下命令:
$posTable | Export-Csv -Path "PosList.csv" -NoTypeInformation -Encoding UTF8
内容的提问来源于stack exchange,提问作者Brazs
相关产品推荐
相关产品推荐

