【发布时间】:2016-08-11 21:49:28
【问题描述】:
我有一个看起来像这样的 XML 文件(我的文件中有很多文件标签):
<file
name="YYY/xxxx/xyz/zyx.cs"
count = '15'>
<severity level="0" count="4"/>
<severity level="2" count="11"/>
<source name="ReviewLinqMethodRule" count="1"/>
<source name="AvoidRepetitiveCallsToPropertiesRule" count="3"/>
<source name="AvoidUnnecessarySpecializationRule" count="3"/>
<source name="CheckParametersNullityInVisibleMethodsRule" count="4"/>
<source name="PreferEmptyInstanceOverNullRule" count="2"/>
<source name="AvoidRepetitiveCastsRule" count="2"/>
</file>
我想要一个搜索整个文件的 PowerShell 代码,每次找到 name= 时,应该将链接更改为完全相同,只是应该在末尾添加一个 /。
所以这个
name="YYY/xxxx/xyz/zyx.cs"
应该改成这个
name="YYY/xxxx/xyz/zyx.cs"
所以上面看起来像这样:
<file
name="YYY/xxxx/xyz/zyx.cs/"
count = '15'>
<severity level="0" count="4"/>
<severity level="2" count="11"/>
<source name="ReviewLinqMethodRule" count="1"/>
<source name="AvoidRepetitiveCallsToPropertiesRule" count="3"/>
<source name="AvoidUnnecessarySpecializationRule" count="3"/>
<source name="CheckParametersNullityInVisibleMethodsRule" count="4"/>
<source name="PreferEmptyInstanceOverNullRule" count="2"/>
<source name="AvoidRepetitiveCastsRule" count="2"/>
</file>
它需要遍历漏洞文件并查找所有name=。链接永远不会相同。
有没有简单的方法可以做到这一点?
到目前为止,我可以打印出每个元素:
[xml]$XML = Get-Content -Path violations.xml
foreach( $file in $XML.violations.type.file)
{
Write-Host $file.name
}
【问题讨论】:
标签: powershell