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

PowerShell转换XML到CSV时遇InputObject参数绑定为空错误求助

问题原因与解决方案

错误原因

原脚本第2行用了$inputFile.website.ChildNodes,但你的XML根节点是<Document>,根本没有<website>节点,所以$inputFile.website是null,导致Export-Csv的InputObject参数拿不到有效输入,直接报错。另外,原脚本直接导出节点的方式,也没法把XML里Row的属性和子Element的键值对转换成你要的CSV格式。

修正后的PowerShell脚本

# 读取并解析XML文件
[XML]$inputFile = Get-Content -Path 'C:\Users\Desktop\Temp - 01D\XML_Audit.xml'

# 把XML节点转换成CSV需要的结构化数据
$csvData = $inputFile.Document.Row | ForEach-Object {
    # 先收集Row自身的属性
    $rowData = @{}
    $_.Attributes | ForEach-Object {
        $rowData[$_.Name] = $_.Value
    }
    # 再收集每个Element的键值对
    $_.Element | ForEach-Object {
        $rowData[$_.ColumnName] = $_.ColumnValue
    }
    # 转成PowerShell对象
    [PSCustomObject]$rowData
}

# 导出为指定格式的CSV
$csvData | Export-Csv "C:\Users\Desktop\Temp - 01D\XML_Audit.csv" -NoTypeInformation -Delimiter:"|" -Encoding:UTF8

# 查看导出结果
Get-Content -Path 'C:\Users\Desktop\Temp - 01D\XML_Audit.csv'

脚本说明

  • 修正节点路径:用$inputFile.Document.Row定位到XML里的实际数据行,替换了错误的$inputFile.website
  • 结构化转换:把每个Row的属性(比如OptionId、AuditDateTime)和子Element的字段(比如ProviderId、ProviderName)合并成统一对象,确保CSV列包含所有需要的内容
  • 保留你要求的导出参数:用|做分隔符、UTF8编码、不添加类型信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:03:21