0

0

PowerShell怎么创建XML对象和文件

星降

星降

发布时间:2025-12-30 11:27:08

|

745人浏览过

|

来源于php中文网

原创

PowerShell创建XML对象和文件应优先使用[xml]类型转换或XmlDocument类,避免字符串拼接;通过Save()方法保存,默认UTF-8编码,需用XmlWriterSettings控制缩进与BOM。

powershell怎么创建xml对象和文件

PowerShell 创建 XML 对象和文件非常直接,核心是用 [xml] 类型加速解析或构建,再用 Save() 方法写入磁盘。关键不是“硬拼字符串”,而是利用 .NET 的 XmlDocument 或更轻量的 XmlWriter 来保证格式合法、编码正确。

用 [xml] 类型快速创建简单 XML 对象

适合结构固定、内容不复杂的情况。PowerShell 会自动把符合 XML 格式的字符串转成 XmlDocument 对象:

  • 先写一个合法的 XML 字符串(注意用双引号包裹,支持变量插值)
  • 强制转换为 [xml] 类型,就得到可操作的对象

例如:

```powershell
$xmlStr = @"


张三
28


@"
$doc = [xml]$xmlStr
```

之后就能用 $doc.root.person.name.InnerText 读取,或用 $doc.CreateElement("city") 动态添加节点。

用 XmlDocument 新建空 XML 并逐步构建

适合需要动态生成、逻辑判断或循环添加节点的场景。从空文档开始,用标准 DOM 方法逐层添加:

  • New-Object System.Xml.XmlDocument 创建空对象
  • CreateElement()CreateAttribute() 创建元素与属性
  • AppendChild()PrependChild() 把节点挂到父节点下

示例(生成带属性的用户列表):

Copysmith
Copysmith

Copysmith是一款面向企业的 AI 内容创建解决方案

下载
```powershell
$doc = New-Object System.Xml.XmlDocument
$root = $doc.CreateElement("users")
$doc.AppendChild($root) | Out-Null

$user = $doc.CreateElement("user")
$idAttr = $doc.CreateAttribute("id")
$idAttr.Value = "101"
$user.SetAttributeNode($idAttr)

$name = $doc.CreateElement("name")
$name.InnerText = "李四"
$user.AppendChild($name) | Out-Null

$root.AppendChild($user) | Out-Null
```

保存 XML 到文件(注意编码和缩进)

直接调用 Save() 方法最稳妥,它默认用 UTF-8 编码并自动处理声明和换行:

  • $doc.Save("C:\data\output.xml") —— 最简写法
  • 如需控制缩进(让文件可读),先配置 XmlWriterSettings

带缩进的保存方式:

```powershell
$settings = New-Object System.Xml.XmlWriterSettings
$settings.Indent = $true
$settings.IndentChars = " "
$settings.Encoding = [System.Text.UTF8Encoding]::new($false)

$writer = [System.Xml.XmlWriter]::Create("C:\data\pretty.xml", $settings)
$doc.WriteTo($writer)
$writer.Close()
```

避免常见坑

实际用时容易踩几个点:

  • 别用字符串拼接 + Out-File 写 XML —— 容易缺闭合标签、编码错乱、特殊字符(如 &)没转义
  • [xml]"&" 会失败,必须写成 "&" 或改用 CreateTextNode()
  • 保存路径不存在时 Save() 会报错,建议提前用 Test-Path -Path $dir -PathType Container 检查目录
  • 如果 XML 中含中文,确保 XmlWriterSettings.Encoding 明确设为 UTF-8(且 $false 参数禁用 BOM,避免某些程序读取异常)

基本上就这些。用好 [xml] 类型和 XmlDocument,既能快速原型,也能写出健壮、可维护的 XML 生成脚本。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

228

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

433

2024.03.01

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1851

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2080

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

917

2024.11.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

247

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

204

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1434

2023.10.24

俄罗斯搜索引擎Yandex最新官方入口网址
俄罗斯搜索引擎Yandex最新官方入口网址

Yandex官方入口网址是https://yandex.com;用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.5万人学习

前端基础到实战(HTML5+CSS3+ES6+NPM)
前端基础到实战(HTML5+CSS3+ES6+NPM)

共162课时 | 18.5万人学习

第二十二期_前端开发
第二十二期_前端开发

共119课时 | 12.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号