我需要更新xml中的一行并保存更改。它看起来很容易,但它对我不起作用,我找不到我的错误( 所以,我需要帮助。 这是我的代码:
[xml]$XmlDocument = Get-Content -Path "C:\Users\Administrator\Documents\Practise\Test.xml"
$random = -join ((48..57) + (97..122) | Get-Random -Count 16 | % {[char]$_})
$node = $XmlDocument.Payment.PaymentOptions.Bank.Value5
$node = $node.Replace('13384wL839', $random)
$XmlDocument.Save("C:\Users\Administrator\Documents\Practise\Test.xml")
有我的xml:
<Payment xmlns="2.0.0">
<PaymentValue1>
<value1>180.00</value1>
<value2>2017-09-30</value2>
<value3>022456789</value3>
</PaymentValue1>
<PaymentOptions>
<Bank>
<Value4>Test1</Value4>
<Value5>13384wL839</Value5>
</Bank>
</PaymentOptions>
</Payment>
我看到$ node已更改,但是当我保存新的xml时 - 它仍然显示旧值。
答案 0 :(得分:1)
由于新值与旧值无关,因此
没有必要更换任何东西,
你只需设定价值。
$File= "C:\Users\Administrator\Documents\Practise\Test.xml"
[xml]$XmlDocument = Get-Content $File
$random = -join ((48..57) + (97..122) | Get-Random -Count 16 | % {[char]$_})
$XmlDocument.Payment.PaymentOptions.Bank.Value5 = $random
$XmlDocument.Save($File)
答案 1 :(得分:0)
您实际上从未将值重新设置回文档。
$XmlDocument.Payment.PaymentOptions.Bank.Value5 = $XmlDocument.Payment.PaymentOptions.Bank.Value5.Replace('13384wL839', $random)
应该做的伎俩。