2016-08-23 251 views
1

我的XML和PowerShell腳本有點問題。 我需要刪除Vlan項目的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> 

但我不能刪除<Vlan>Vlan4$</Vlan>RemoveChild方法....

$xml.Settings.ARP.configVLAN.SelectSingleNode("Vlan[text()=""$($selectedItem)""]").RemoveChild() 

你能幫助我嗎?

回答

1

你必須調用父的RemoveChild方法,並傳遞要刪除的參數實際節點:

$selectedItem = 'Vlan4$' 
$xmlFilePath = "Your_xml_file_path" 

$xml = [xml](Get-Content $xmlFilePath) 
$nodeToRemove = $xml.Settings.ARP.configVLAN.SelectSingleNode("Vlan[text()=""$($selectedItem)""]") 
$xml.Settings.ARP.ConfigVLAN.RemoveChild($nodeToRemove) | out-null 
$xml.Save($xmlFilePath)