PowerShell使用SelectNodes无法获取XML元素内容的问题咨询
问题原因及解决方法
核心问题
你代码里的变量名不匹配:加载XML文件时将内容存入了$doc变量,但执行查询时却用了未关联当前XML的$xml变量,这就是查询无结果的根本原因。
正确处理方式
以下几种方法都能获取<StdOut>元素的内容:
方法1:修正变量名,使用XPath查询
# 直接查询所有StdOut节点并输出内容 $doc.SelectNodes("//StdOut") | ForEach-Object { $_.InnerText }
方法2:使用PowerShell的点标记法遍历
如果XML结构固定,直接通过层级访问更直观:
$doc.TestRun.Results.UnitTestResult.Output.StdOut
方法3:处理多个<UnitTestResult>节点的场景
如果XML中有多个测试结果节点,用循环批量提取:
$doc.TestRun.Results.UnitTestResult | ForEach-Object { $_.Output.StdOut }
补充说明
你打印$xml时看到的内容,应该是之前操作遗留的变量值,和当前加载的file.xml完全无关,所以基于$xml的任何查询都无法获取目标XML的数据。
内容的提问来源于stack exchange,提问作者Matt W
相关产品推荐
相关产品推荐

