PowerShell创建XML对象和文件应优先使用[xml]类型转换或XmlDocument类,避免字符串拼接;通过Save()方法保存,默认UTF-8编码,需用XmlWriterSettings控制缩进与BOM。
PowerShell 创建 XML 对象和文件非常直接,核心是用 [xml] 类型加速解析或构建,再用 Save() 方法写入磁盘。关键不是“硬拼字符串”,而是利用 .NET 的 XmlDocument 或更轻量的 XmlWriter 来保证格式合法、编码正确。
适合结构固定、内容不复杂的情况。PowerShell 会自动把符合 XML 格式的字符串转成 XmlDocument 对象:
[xml] 类型,就得到可操作的对象例如:
```powershell之后就能用 $doc.root.person.name.InnerText 读取,或用 $doc.CreateElement("city") 动态添加节点。
适合需要动态生成、逻辑判断或循环添加节点的场景。从空文档开始,用标准 DOM 方法逐层添加:
New-Object System.Xml.XmlDocument 创建空对象CreateElement() 和 CreateAttribute() 创建元素与属性AppendChild() 或 PrependChild() 把节点挂到父节点下示例(生成带属性的用户列表):
```powershell直接调用 Save() 方法最稳妥,它默认用 UTF-8 编码并自动处理声明和换行:
$doc.Save("C:\data\output.xml") —— 最简写法XmlWriterSettings
带缩进的保存方式:
```powershell实际用时容易踩几个点:
Out-File 写 XML —— 容易缺闭合标签、编码错乱、特殊字符(如 &)没转义[xml]"&" 会失败,必须写成 "&" 或改用 CreateTextNode()
Save() 会报错,建议提前用 Test-Path -Path $dir -PathType Container 检查目录XmlWriterSettings.Encoding 明确设为 UTF-8(且 $false 参数禁用 BOM,避免某些程序读取异常)基本上就这些。用好 [xml] 类型和 XmlDocument,既能快速原型,也能写出健壮
、可维护的 XML 生成脚本。