如何使用 PowerShell 從 XML 檔案中刪除特定節點?


如需從 PowerShell 中刪除特定 XML 節點,我們可以使用 XML 的 RemoveChild() 方法。

例如,我們有一個來自 Microsoft 的 XML 示例檔案。

https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms762271(v=vs.85)

我們將上述檔案儲存在 C:\Temp\SampleXml.XML 中,我們需要刪除 book 節點(其屬性為‘bk102’),為此,我們將使用 XML 的 XPath 方法。

以下命令首先搜尋 book 屬性為‘bk102’的 XML book 節點,然後將其刪除。

$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 的節點,然後將它們刪除。

更新於: 2021-03-01

9000+ 次瀏覽

開啟您的 職業生涯

完成課程獲取認證

開始使用
廣告