如何提取 XML 的节点并创建新的 XML 文档

How to extract a node of XML and create a new XML document

我需要使用 Powershell 从更大的 XML 文档中提取节点(和 children)并创建一个新的独立 XML 文档,其中仅包含提取的 XML 节点(和 children);然后我需要将这个新提取的 XML 保存在一个文件中。正在提取的 top-level XML 节点具有属性。看来我必须设置新的 XML object 的 XMLDocument 值才能执行此操作,但是 XMLDocument 是 read-only 属性.有人可以帮忙吗?

关键是使用XmlDocument.ImportNode()方法例如:

$xml1 = [xml](Get-Content foo.xml)
# find the node you want to extract
$node = $xml1.Foo.Bar

$xml2 = New-Object System.Xml.XmlDocument
$newNode = $xml2.ImportNode($node, $true)
$xml2.AppendChild($newNode)
$xml2.Save("bar.xml")