使用点符号访问 XML 节点时是否可以使用属性?

use*_*291 3 xml powershell xpath

PowerShell 具有用于访问某些 XML 节点的点语法:

root.object1.object2
Run Code Online (Sandbox Code Playgroud)

有可能做这样的事情吗?

root.object1.object2[@id="pdt1"]
Run Code Online (Sandbox Code Playgroud)

除了这个语法不起作用。

这种语法是否存在,还是必须使用SelectNodes()方法?

Ans*_*ers 5

不,您不能像那样混合使用对象和 XPath 语法。要么使用 XPath:

$xml.SelectSingleNode('/root/object1/object2[@id="pdt1"]')
Run Code Online (Sandbox Code Playgroud)

或使用带有Where-Object过滤器的对象语法(如@PetSerAl 在对您的问题的评论中所建议的那样):

$xml.root.object1.object2 | Where-Object { $_.id -eq 'pdt1' }
Run Code Online (Sandbox Code Playgroud)