我正在研究一个简单的Powershell脚本,该脚本将验证xml文件中是否存在属性。 xml文件看起来像,
<?xml version="1.0"?>
<Objects>
<Object>
<Property Name="Browser">Firefox</Property>
<Property Name="PDF">Adobe Reader</Property>
</Object>
</Objects>
我希望Powershell验证Firefox属性是否存在,然后再执行任务。
[xml]$file = get-content C:\Admin\personalsettings.xml
$xmlProperties = $file.SelectNodes("/Objects/Object/Property")
Foreach ($xmlProperty in $xmlProperties) {
$strName = ($xmlProperty | Where-Object {$_.Name -eq "Firefox" }).InnerXml
If ($strName -eq "False")
{
Invoke-Item "C:\windows\protected\browser.exe"
}
}
请注意,Firefox
是XML中Property
element的子文本节点,可以通过XML的.InnerText
属性对其进行访问。
因此,您可以按以下方式检索/测试感兴趣的Property
元素的存在:
$firefoxElem = $xmlProperties.Where({ $_.InnerText -eq 'FireFox' }, 'First')
$haveFirefoxElem = [bool] $firefoxElem