$x = ([xml]"<sample name='notsample'/>").sample
鉴于上述代码行,我希望找到XmlElement
中$x
所描述的代码名称。通常,您只需使用$x.Name
,但name
属性会屏蔽它。 sample
不返回$x.name
,而是返回notsample
。
我找到的唯一解决方法是:
[Xml.XmlElement].GetProperty("Name").GetValue($x)
......但这很黑。我怎么能正确地做到这一点?
答案 0 :(得分:5)
您可以通过直接调用属性getter方法来获取它:
$x.get_Name()
这适用于许多其他类似的情况。例如,如果类型实现IDictonary
并具有其他属性,则可能需要使用此属性来访问这些属性。默认情况下,PowerShell会对字典进行查找,而不是获取/设置所访问的属性。
您可以使用-Force
上的Get-Member
选项让PowerShell显示隐藏的成员:
$x | gm -Force
答案 1 :(得分:3)
您所追求的是LocalName
类的XmlElement
属性。尝试:
PS> $x.LocalName
sample
获取当前节点的本地名称。
物业价值
输入:System.String
删除前缀的当前节点的名称。例如,LocalName为元素
<bk:book>
的 book 。