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

为何XmlAttribute的#text属性未在微软官方类定义文档中记载?

关于XmlAttribute未记载的#text属性的说明

XmlAttribute的官方文档中仅明确记载了Value属性,但在PowerShell里你可以通过#text属性正常访问属性值,背后原因如下:

  1. 本质等价性:#text属性和Value属性指向的是同一内容。在XML DOM模型中,属性的文本内容会被抽象为#text节点,PowerShell通过自身的.NET适配器(PSAdapter)将这个节点内容以动态属性的形式暴露出来,方便用户以更贴近DOM节点的逻辑操作XML。

  2. 文档缺失的原因:这个#text属性并非.NET框架原生定义的属性,而是PowerShell为简化XML操作额外提供的语法糖,因此不会出现在微软官方的.NET XmlAttribute文档中。相关使用场景的说明主要散见于PowerShell社区讨论和实战指南里。

  3. 使用建议:虽然#text可以正常使用,但从兼容性和规范性角度,更推荐使用官方文档记载的Value属性——它是.NET框架原生支持的标准属性,跨环境使用的可靠性更强。

附上你提供的可运行代码示例:

[SelectXmlInfo]$out = Select-Xml '//*[local-name()="svg"]/@viewBox' -Path $TheSVGFile
$out | ForEach-Object {
    $_.Node.GetType()
    $_.Node.'#text'
}

输出结果:
输出结果截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:05:13