更新XML文件中的文本

时间:2020-02-28 17:46:47

标签: powershell

我有以下xml文件。

<Objects>
  <Object>
    <Property Name="Browser">Firefox</Property>
    <Property Name="PDF">Adobe Reader</Property>
</Object>

我希望能够使用Powershell脚本更新单词firefox。

这是有效的Powershell脚本,不起作用。

$xmlDoc = [XML](Get-Content "c:\Windows\personalsettings\PersonalSettings.xml")
 foreach ($item in  $xmlDoc.Objects.Object.Property)
 {
    $item.Name = 'Chrome'
 }
 $xmlDoc.Save("c:\Windows\personalsettings\PersonalSettings.xml")

1 个答案:

答案 0 :(得分:0)

[xml]$XML = @"
<Objects>
  <Object>
    <Property Name="Browser">Firefox</Property>
    <Property Name="PDF">Adobe Reader</Property>
  </Object>
</Objects>
"@

$XML.SelectSingleNode('//Property[@Name="Browser"]')
$XML.SelectSingleNode('//Property[@Name="Browser"]').InnerText = "TEST"
$XML.SelectSingleNode('//Property[@Name="Browser"]')

结果将

> Name    #text  
> ----    ----- 
> Browser Firefox
> Browser TEST

您正在寻找的是 XPATH

像这样

//路径或NodeName [@ AttributeName =“属性的值”]

获得节点后,您便可以按照自己的喜好编辑该节点。