如何更改XML元素中的文本?

Ram*_*tan 5 xml powershell

假设我有以下XML元素:

<test> 1000 </test>
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

<test > 500 </test>
Run Code Online (Sandbox Code Playgroud)

使用PowerShell我该怎么做。

我知道如何使用PowerShell制作xml对象,以及如何使节点变量访问XML中的特定节点。我只是不知道替换节点内文本的确切命令。

Mr *_*ree 5

与所有PowerShell一样,这可以通过多种方式完成。如果您具有这样的元素,则<test name="frank">Some Text</test>可以通过执行以下操作来更改它:

[xml]$xml = '<test name="frank">Some Text</test>'
$xml.test.InnerText = "Some Other Text"
Run Code Online (Sandbox Code Playgroud)

但是,如果您的元素很简单,如问题(<test>1000</test>)中所述,则需要多加注意。

[xml]$xml = "<test>1000</test>"
$elements = $xml.SelectSingleNode("//test")
$elements[0].'#text' = "500"
Run Code Online (Sandbox Code Playgroud)

原因是PowerShell将为其返回字符串,$xml.test并且设置该字符串不会更新XmlDocument。