PowerShell怎么处理XML PowerShell操作XML文件教程

2次阅读

PowerShell处理xml便捷高效,核心是[xml]类型自动解析并支持点号语法访问节点属性;可加载、查询(XPath)、修改、保存或从零构建XML文档,但修改后须显式调用.Save()或输出内容。

PowerShell怎么处理XML PowerShell操作XML文件教程

PowerShell 处理 XML 文件非常方便,核心是用 [xml] 类型加速解析,配合点号语法(.)直接访问节点和属性,不用写复杂 dom 代码。

读取 XML 文件并转为对象

PowerShell 把 XML 当作 .netSystem.Xml.XmlDocument 对象处理,支持强类型访问:

  • [xml]$xml = Get-Content "config.xml" 加载文件(自动解析)
  • 或用 [xml]$xml = [xml]::new(); $xml.Load("config.xml") 手动加载(适合大文件或需异常控制)
  • 成功后可直接用 $xml.Root.Child.Name 访问元素,$xml.Root.Child.Attribute 读属性

查询和筛选节点(XPath + SelectSinglenode/SelectNodes)

原生支持 XPath,比遍历更高效:

  • $xml.SelectSingleNode("//user[@id='101']") —— 找 id=101 的 user 节点
  • $xml.SelectNodes("/config/appSettings/add") —— 获取所有 add 元素
  • 结果是 XmlNode 集合,可管道进 foreach-Object 处理

修改和保存 XML

改值、增删节点都直观,但注意:修改后必须显式保存:

PowerShell怎么处理XML PowerShell操作XML文件教程

AletheaAI

世界上第一个从自然语言描述中生成交互式 AI 角色的多模态 AI 系统。

PowerShell怎么处理XML PowerShell操作XML文件教程 83

查看详情 PowerShell怎么处理XML PowerShell操作XML文件教程

  • 改文本:$node.InnerText = "new value"
  • 改属性:$node.SetAttribute("enabled", "true")
  • 新增子节点:$new = $xml.CreateElement("log"); $node.AppendChild($new)
  • 保存:$xml.Save("config.xml")(覆盖原文件)或 $xml.OuterXml | Set-Content "new.xml"

写入新 XML(从零构建)

适合生成配置或导出数据:

  • 创建空文档:$xml = [xml]::new()
  • 添加根节点:$root = $xml.CreateElement("config"); $xml.AppendChild($root)
  • 追加子节点:$child = $xml.CreateElement("version"); $child.InnerText = "2.1"; $root.AppendChild($child)
  • 最后别忘 $xml.Save("output.xml")

基本上就这些。PowerShell 操作 XML 不复杂但容易忽略保存步骤,记得每次改完调 .Save() 或重新输出内容。

text=ZqhQzanResources