如何使用PowerShell从另一个文件更改XML中的值?

时间:2018-11-14 11:14:30

标签: xml powershell

我有配置。我需要在已从文本文件接收值的配置中更改值的值。 也就是说:XML文件有一个<add key='shopId' value='foo'/>和一个文本文件,它有一个值。

我已经替换了整个文件或指定的重复值,或者更改为变量中指定的值,但没有从文本文件中更改。

我愿意

[XML]$xml = Get-Content "C:\Folder\config"
$xpath = "/configuration/appSettings/add[@value='5' and @key ='shopId']"
$nodes = $xml.SelectNodes($xpath)

foreach ($n in $nodes) {
    $n.value = "TEST"   # How to change value from another file?
}

$xml.Save($xmlFile)

但这对我来说是不正确的。请帮我。如何从另一个文件更改值?

1 个答案:

答案 0 :(得分:0)

据我了解,您想从文本文件中读取值并将其插入XML配置文件中。

MWE

$TextFile = "C:\Folder\file.txt"
$XMLFile  = "C:\Folder\config.xml"

$Value    = Get-Content -Path $TextFile -Raw
[XML]$XML = Get-Content -Path $XMLFile
$XPath    = "/configuration/appSettings/add[@value='5' and @key ='shopId']"
$Nodes    = $XML.SelectNodes($xpath)

foreach ($Node in $Nodes) {
    $Node.value = $Value
}

$XML.Save($XMLFile)