我正在尝试更改xml中的值。
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<settings>
<setting name="Attach" defaultValue="False" value="" />
<setting name="Connections" defaultValue="" value="CHANGE_THE_VALUE" />
<setting name="Destroy" defaultValue="True" value="" />
</settings>
我需要改变"连接">
的值 Powershell:
$file = "C:New folderUserSettings.xml"
$xmldata = [xml] (Get-Content $file)
$xmldata.settings.ChildNodes
$xmldata.Save((Resolve-Path $file).Path)
我应该如何修改上面代码中的第三个字符串?
您可以使用SelectSingleNode
方法来查找和更新节点,然后使用.Save
,就像您已经做的那样:
$xml = [xml]::new()
$xml.Load('pathtofile.xml')
$xml.SelectSingleNode('/settings/setting[@name="Connections"]').Value = 'Hello World'
$xml.Save('pathtofile.xml')
$xmldata.settings.ChildNodes | where {$_.name -eq "Connections"} | foreach {$_.value = "new-value"}
然后你可以像以前一样保存文件。然而,这种保存方法只有在文件已经存在的情况下才有效(在您的情况下是这样,因为您正在保存到您从中读取的同一个文件)。