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

时间:2015-08-26 14:31:00

标签: xml powershell

我们说我有以下XML元素:

<test> 1000 </test>

我想将其更改为:

<test > 500 </test>

使用PowerShell我该怎么做。

我知道如何使用PowerShell创建xml对象并创建一个节点变量来访问XML中的某个节点。我只是不知道替换节点内文本的确切命令。

1 个答案:

答案 0 :(得分:5)

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

[xml]$xml = '<test name="frank">Some Text</test>'
$xml.test.InnerText = "Some Other Text"

但是,如果问题(<test>1000</test>)中描述的元素很简单,则需要小心。

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

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