Используя Powershell, я хотел бы обновить статус совместимости Outlook на True
<default>
<application>Excel.exe</application>
<compatible>True</compatible>
<application>Outlook.exe</application>
<compatible>False</compatible>
<application>Word.exe</application>
<compatible>False</compatible>
</default>
$doc = [xml](Get-Content./test.xml)
Результатом $doc.default.compatible
является
Правда
Ложь
False
Как изменить только среднее значение (outlook.exe)на True с помощью Powershell?
. Поскольку вы хотите изменить совместимый узел после узла Outlook, я реализовал проверку того, что это предыдущее значение, используя метод PreviousSibling перед изменением значения на True.
Обновлен код:
$docs = [xml](Get-Content./test.xml)
$doc = $docs.SelectNodes('/default/compatible')
foreach ($d in $doc){
if($d.PreviousSibling.OuterXml -eq "<application>Outlook.exe</application>"){
$d.'#text' = "True"
}
}
$docs.Save($PSScriptRoot + "\test.xml")