我正在使用Bamboo创建一个.xml文件,该文件将读取我需要的所有属性。目前我的脚本看起来像这样:
[xml]$XmlDocument = Get-Content C:\Users\c.d\TestResult.xml
foreach ($Success in $XmlDocument.'test-results')
{
Write-Host $XmlDocument.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-case'.success
Write-Host $XmlDocument.'test-results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-suite'.'results'.'test-case'.result
}
这一切都运行得很好但是你可以看到这是我必须通过这么多的子节点才能获得我需要的属性(这对于这个项目来说是相对少量的测试)
问题是该脚本将用于许多.xml结果文件,因此有些子节点路径比其他路径更多但所有具有我需要的最终属性,所以我试图找出如果我可以搜索最终属性,例如成功做一些像"〜/ .success"或" //成功"但是我试过的一切都不会显示任何东西,有没有办法做到这一点?
例如,如果这是我的xml文件
<myUsers>
<Users>
<User>
<Name>a</Name>
</User>
<User>
<Name>b</Name>
</User>
</Users>
</myUsers>
而不是:
Write-Host $userfile.'myUsers'.'Users'.'User'.Name
我可以这样做:
Write-Host '~/'.Name
另外我应该注意,在我的示例中,创建的节点名称完全相同,因此我不知道这是否会影响解决方案。