PowerShell怎么修改XML文件中的值 Select-Xml用法

星降

星降

2026-03-21

639人浏览

原创

powershell修改xml文件需先用[xml]加载为xmldocument对象,再用selectsinglenode/selectnodes定位节点并修改innertext或属性,最后调用save()保存;select-xml仅用于查询,其.node属性才可修改,且需手动保存;处理命名空间须声明namespacemanager;保存时save()会重排格式,如需保留原格式可用xmlwriter配置缩进。

powershell怎么修改xml文件中的值 select-xml用法

PowerShell 修改 XML 文件中的值,核心是用 Select-Xml 定位节点,再通过 .NET 的 XML 对象模型(如 XmlNodeInnerTextSetAttribute())修改内容,最后保存回文件。它本身不直接修改,而是配合 Get-Content -AsByteStream(旧版)或更推荐的 [xml] 类型强制转换来操作。

用 [xml] 加载并修改节点值(最常用)

这是最直观、稳定的方式:把 XML 读成 .NET 的 XmlDocument 对象,用 XPath 查找节点,改值,再保存。

  • 先用 [xml]$xml = Get-Content path.xml 加载(自动解析,支持注释和命名空间)
  • $xml.SelectSingleNode("//ElementName")$xml.SelectNodes("//item[@id='123']") 找节点
  • 修改文本值:$node.InnerText = "新内容"
  • 修改属性值:$node.SetAttribute("attrName", "新值")
  • 保存:$xml.Save("path.xml")(会保留原始格式,但缩进可能重排;如需美化可另加处理)

Select-Xml 的实际用途:只读查询 + 后续修改

Select-Xml 本质是“查”,返回 SelectXmlInfo 对象,其 .Node 属性才是可修改的 XmlNode。适合在复杂文档中精准定位后再改。

  • 例如:修改所有 <status></status> 值为 active
  • $nodes = Select-Xml -Path config.xml -XPath "//status"
  • foreach ($n in $nodes) { $n.Node.InnerText = "active" }
  • ⚠️注意:Select-Xml 返回的是副本节点,改完不会自动写回原文件——你仍需用原始 [xml] 对象或重新加载保存

处理带命名空间的 XML

如果 XML 有 xmlns="http://example.com/ns",XPath 查询必须声明命名空间,否则查不到。

  • 定义命名空间管理器:$ns = @{ ns = "http://example.com/ns" }
  • 查节点:$xml.SelectSingleNode("//ns:config", $ns)
  • Select-Xml 时传入:Select-Xml -Path file.xml -XPath "//ns:item" -Namespace $ns
  • 命名空间前缀(如 ns:)必须和 $ns 中的键一致

保存时保持原始格式(可选增强)

$xml.Save() 会输出紧凑 XML(无换行缩进)。若想接近原文格式:

  • $xml.OuterXml | Set-Content file.xml -Encoding UTF8(简单但丢失注释)
  • 更稳妥:用 System.Xml.XmlWriter 配置缩进(适合对格式敏感的场景)
  • 小技巧:先备份原文件,改完对比差异,避免意外覆盖
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

2025.12.04

450

13

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

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

2024.04.01

2808

5

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

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

2024.08.01

3387

7

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

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

2024.11.28

1794

7

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.09

1652

4

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

2023.11.14

629

3

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2024.03.12

5112

8

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

4622

6

Go 语言 HTTP 编程与中间件开发教程合集
Go 语言 HTTP 编程与中间件开发教程合集

全面讲解 Go 语言 HTTP 编程的核心知识,涵盖 net/http 标准库的 Server/Handler/HandlerFunc 体系、DefaultServeMux 路由注册与自定义路由器、Request / ResponseWriter 请求响应处理、中间件(Middleware)链式设计模式与常见中间件(日志/CORS/认证/限流)开发、http.Client 的超时配置与连接池管理、Cookie / Session 处理、

2026.05.08

174

31

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习