如何使用 PowerShell 从 XML 文件中删除特定节点?
要从PowerShell中删除特定的XML节点,我们可以使用RemoveChild()XML的方法。
例如,我们有一个来自Microsoft的示例XML文件。
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms762271(v=vs.85)
我们已将上述文件保存到C:\Temp\SampleXml.XML中,我们需要删除具有属性“bk102”的书节点,为此,我们将使用XML的XPath方法。
下面的命令将首先搜索具有书属性“bk102”的XML书节点,然后我们将其删除。
$xml = [xml](Get-Content C:\Temp\SampleXML.xml) $node = $xml.SelectSingleNode("//book[@id='bk102']") $node.ParentNode.RemoveChild($node) | Out-Null $xml.Save('C:\Temp\SampleXML.xml')
如果要删除所有名称为“Book”的节点,我们可以使用以下命令。
$xml = [xml](Get-Content C:\Temp\SampleXML.xml) $xml.SelectNodes("//book") $nodes = $xml.SelectNodes("//book") foreach($node in $nodes){$node.ParentNode.RemoveChild($node)}
在上面的例子中,SelectNodes('//book')方法将选择所有名为Book的节点,然后删除它们。