PowerShell的[xml]类型加速器怎么用

星降
发布: 2025-12-16 00:45:26
原创
645人浏览过
[xml]是PowerShell中System.Xml.XmlDocument的类型加速器,支持从字符串或文件(需-Raw参数)加载XML,提供XPath查询、节点修改及保存功能。

powershell的[xml]类型加速器怎么用

[xml] 是 PowerShell 中最常用、最实用的类型加速器之一,它本质是 System.Xml.XmlDocument 类的快捷别名。你不需要写一长串 [System.Xml.XmlDocument],直接用 [xml] 就能快速把字符串或文件内容解析成可操作的 XML 对象。


[xml] 加载 XML 内容

只要数据格式合法,PowerShell 会自动解析为 XmlDocument 对象,支持 .SelectNodes().SelectSingleNode()、XPath 查询、属性访问等。

# 从字符串加载
$xml = [xml] @"
<root>
  <person id="1">
    <name>Alice</name>
    <age>30</age>
  </person>
  <person id="2">
    <name>Bob</name>
    <age>25</age>
  </person>
</root>
"@

# 从文件加载(推荐用 Get-Content -Raw,避免换行截断)
$xml = [xml](Get-Content -Raw "config.xml")
登录后复制

⚠️ 注意:

  • 必须用 -Raw 参数读取 XML 文件,否则 Get-Content 默认按行返回字符串数组[xml] 无法解析。
  • 如果 XML 有 BOM 或编码问题(如 UTF-8 with BOM),建议加 -Encoding UTF8

[xml] 查询和修改节点

解析后就能像操作 DOM 一样处理:

魔法映像企业网站管理系统
魔法映像企业网站管理系统

技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作

魔法映像企业网站管理系统 0
查看详情 魔法映像企业网站管理系统
# 查找所有 person 节点
$persons = $xml.root.person

# 用 XPath 查第一个 person 的 name
$name = $xml.SelectSingleNode("//person[1]/name").InnerText

# 查找 id=2 的 person 并改 age
$target = $xml.SelectSingleNode("//person[@id='2']")
$target.age = "26"

# 新增一个节点
$newPerson = $xml.CreateElement("person")
$newPerson.SetAttribute("id", "3")
$newName = $xml.CreateElement("name")
$newName.InnerText = "Charlie"
$newPerson.AppendChild($newName) | Out-Null
$xml.root.AppendChild($newPerson) | Out-Null
登录后复制

✅ 小技巧:

  • $xml.root.person 是 PowerShell 自动为根下同名子元素生成的集合属性,方便但不支持复杂筛选;
  • 真正灵活的查询必须用 .SelectSingleNode().SelectNodes() + XPath。

常见报错和避坑点

  • “Invalid XML” 或 “Data at the root level is invalid”
    多半是 XML 字符串开头有空格、BOM、或混入了 PowerShell 注释(如 ),先 Trim() 或用 -Raw 读取。

  • $xml.xxx 返回 null
    检查 XML 是否真有那个层级,或是否拼错了标签名(XML 区分大小写)。

  • 修改后保存不生效?
    [xml] 对象修改的是内存中的副本,要写回文件需显式调用:

    $xml.Save("config.xml")
    登录后复制

基本上就这些。[xml] 不复杂,但容易忽略 -Raw 和编码细节,用对了能省掉大量手动解析工作。

以上就是PowerShell的[xml]类型加速器怎么用的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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