2015-08-16 62 views
2

PowerShell有用于访问某些XML节点点语法:使用点符号访问XML节点时可以使用属性吗?

root.object1.object2 

是否有可能做这样的事情?

root.object1.object2[@id="pdt1"] 

除了此语法不起作用。

这种类型的语法是否存在,或者它是否必须使用SelectNodes()方法?

+1

你可以用'其中-Object':'根.object1.object2 |? id -eq pdt1'。 – PetSerAl

回答

4

不,您不能混合使用对象和XPath语法。无论是使用的XPath:

$xml.SelectSingleNode('/root/object1/object2[@id="pdt1"]') 

或使用对象语法与Where-Object过滤器(由@PetSerAl在评论你的问题建议):

$xml.root.object1.object2 | Where-Object { $_.id -eq 'pdt1' } 
+0

我不知道Where-Object的感谢。我希望他们将在未来添加更自然的语法。 – user310291