在Windows自动化场景中,使用PowerShell创建XML文档是一项常见需求。无论是生成程序配置、导出数据还是与其他系统交换文件,PowerShell都提供了多种简单可靠的方式来完成XML的构建与保存。

使用XmlDocument对象创建XML
PowerShell可以通过System.Xml.XmlDocument类来编程式地构建XML。核心思路是先建立文档对象,再创建各个元素节点,最后用AppendChild拼接并保存。
基本步骤示例
下面的脚本创建一个包含书籍信息的XML文件:
# 创建XmlDocument对象
$xml = New-Object System.Xml.XmlDocument
# 创建根节点
$root = $xml.CreateElement("Library")
$xml.AppendChild($root)
# 创建子节点Book
$book = $xml.CreateElement("Book")
$book.SetAttribute("id", "1")
$title = $xml.CreateElement("Title")
$title.InnerText = "PowerShell入门"
$book.AppendChild($title)
$author = $xml.CreateElement("Author")
$author.InnerText = "张三"
$book.AppendChild($author)
$root.AppendChild($book)
# 保存到文件
$xml.Save("C:templibrary.xml")
运行后生成的XML内容结构如下:
<Library>
<Book id="1">
<Title>PowerShell入门</Title>
<Author>张三</Author>
</Book>
</Library>
常用方法说明
CreateElement:创建指定名称的元素节点SetAttribute:为节点设置属性AppendChild:将子节点挂到父节点下Save:将文档写入磁盘路径
使用Here-String快速生成
如果XML结构非常简单且固定,也可以直接用字符串赋值,再转换为XML对象或保存为文件。
# 用Here-String定义XML文本 $xmlText = @" <Config> <Name>TestApp</Name> <Version>1.0</Version> </Config> "@ # 保存为文件 $xmlText | Out-File -FilePath "C:tempconfig.xml" -Encoding utf8
这种方式适合静态模板,但不方便动态修改节点内容。
两种方式的对比
| 方式 | 适用场景 | 动态性 |
|---|---|---|
| XmlDocument对象 | 结构复杂、需动态增删节点 | 强 |
| Here-String | 结构简单、内容固定 | 弱 |
注意事项
在创建XML时,如果节点文本包含特殊字符,使用InnerText会自动转义,比手工拼接字符串更安全。另外保存文件建议明确指定编码,例如UTF-8,避免中文乱码问题。
合理选择创建方式,可以让PowerShell脚本在处理XML时既清晰又不易出错。
PowerShellXMLCreateXml修改时间:2026-07-28 17:00:33