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

PowerShell中如何用点标记法读取带属性的XML元素值?

PowerShell点标记法读取带属性XML元素的内部文本

解决方案

通过元素对象的InnerText属性或'#text'成员即可访问带属性元素的内部文本,点标记法的写法如下:

# 使用InnerText属性
Write-Host $xconf.Settings.Element1.InnerText

# 或者使用#text成员
Write-Host $xconf.Settings.Element1.'#text'

原因说明

当XML元素包含属性时,PowerShell点标记法直接引用元素(如$xconf.Settings.Element1)会返回完整的XmlElement对象,而非默认解析内部文本。只有当元素无任何属性时,PowerShell才会自动简化返回其内部文本。

示例验证

带属性的XML文件

<?xml version="1.0" encoding="UTF-8"?>
<Settings>
    <Element1 Attr1="AttrValue1">ElemValue1</Element1>
    <Element2>ElemValue2</Element2>
</Settings>

修改后的PowerShell代码

[XML] $xconf = Get-Content $XmlFullFilename
Write-Host $xconf.Settings.Element1.InnerText
Write-Host $xconf.Settings.Element2

执行结果

ElemValue1
ElemValue2

补充提示

  • InnerText是.NET XmlElement类的标准属性,会返回元素及其所有子元素的串联文本,适用于绝大多数场景。
  • '#text'是PowerShell针对XML节点文本内容的特殊访问方式,直接指向元素的文本节点,在元素无嵌套子元素时,效果和InnerText完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:31:08