Powershell从xml获取属性值

问题描述 投票:0回答:1

我正在研究一个简单的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"
 }
}
powershell scripting
1个回答
0
投票

请注意,Firefox是XML中Property element子文本节点,可以通过XML的.InnerText属性对其进行访问。

因此,您可以按以下方式检索/测试感兴趣的Property元素的存在:

$firefoxElem = $xmlProperties.Where({ $_.InnerText -eq 'FireFox' }, 'First')
$haveFirefoxElem = [bool] $firefoxElem
© www.soinside.com 2019 - 2024. All rights reserved.