You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell初学者求助:如何从XML文件中获取属性值?

PowerShell读取XML属性值的解决方法

你的XML包含默认命名空间,且访问语法有误,导致无法正确获取目标值。以下是修复步骤:

1. 修正文件路径

你原代码中的路径C:SmbShares.xml缺少反斜杠,正确路径应为C:\SmbShares.xml。

2. 处理XML命名空间

XML中的xmlns="http://schemas.microsoft.com/powershell/2004/04"是默认命名空间,必须先注册才能正确查询节点:

$xml = [xml](Get-Content "C:\SmbShares.xml")
# 注册命名空间
$nsManager = New-Object System.Xml.XmlNamespaceManager($xml.NameTable)
$nsManager.AddNamespace("ps", "http://schemas.microsoft.com/powershell/2004/04")

3. 获取目标值

使用XPath筛选N属性为Name的S节点,然后提取其文本内容:

# 获取Name对应的节点文本
$xml.SelectSingleNode("//ps:S[@N='Name']", $nsManager).InnerText

执行后会输出:

Shares

替代方法(无需XPath)

如果偏好点符号访问,可以先筛选节点再提取文本:

$xml.Objs.Obj[0].Props.S | Where-Object { $_.N -eq 'Name' } | Select-Object -ExpandProperty '#text'

内容的提问来源于stack exchange,提问作者chou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:28:27