使用powershell修改item innerXml

时间:2016-08-17 08:13:10

标签: xml powershell powershell-v3.0

所以我对PowerShell脚本和XML文件有点了解。 目前,XML文件格式如下:

<?xml version="1.0" encoding="utf-8"?>
<Settings> 
  <ARP>
    <ConfigVLAN>
      <Vlan>Vlan1</Vlan>
      <Vlan>Vlan2</Vlan>
      <Vlan>Vlan3</Vlan>
      <Vlan>Vlan4$</Vlan>
    </ConfigVLAN>
  </ARP>
</Settings>

我的Powershell脚本是这样的:

function modifyXmlItem ($selectedItem, $newValue) {

    $node = $xml.Settings.ARP.configVLAN | where {$_ -eq $selectedItem}
    $node = $newValue
    $xml.Save($path)
}

所以我希望通过文本框中的值更改Vlan1的值。 我可以从文本框中获得价值,我可以获得价值(Vlan 1),但我没有改变&#34; Vlan1&#34; ...

但是这个功能不起作用...... 我尝试过从网上提供的许多解决方案但没有工作......

你能帮我吗? (抱歉我的英语不好......)

1 个答案:

答案 0 :(得分:0)

试试这个:

$xml = [xml]'<?xml version="1.0" encoding="utf-8"?>
<Settings> 
  <ARP>
    <ConfigVLAN>
      <Vlan>Vlan1</Vlan>
      <Vlan>Vlan2</Vlan>
      <Vlan>Vlan3</Vlan>
      <Vlan>Vlan4$</Vlan>
    </ConfigVLAN>
  </ARP>
</Settings>'
$selectedItem = 'Vlan4$'

$xml.Settings.ARP.ConfigVLAN.SelectSingleNode("Vlan[text()=""$($selectedItem)""]").InnerText = "NewValue"
$xml.Save('d:\temp\out.xml')