我有配置。我需要在已从文本文件接收值的配置中更改值的值。
也就是说: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)
但这对我来说是不正确的。请帮我。如何从另一个文件更改值?
答案 0 :(得分:0)
据我了解,您想从文本文件中读取值并将其插入XML配置文件中。
$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)