我正在尝试使用另一个过时的 xml 文件的一部分创建一个新的 xml。
$xml = New-Object XML
$dec = $xml.CreateXmlDeclaration("1.0","UTF-8","yes")
$xml.AppendChild($dec)
$root = $xml.CreateElement("Remove")
$xml.AppendChild($root)
$xml.load('C:\Source\Fakamae_2018005_KM.xml')
$namespaceMgr = New-Object System.Xml.XmlNamespaceManager $xml.NameTable
$namespace = $xml.DocumentElement.NamespaceURI
$namespaceMgr.AddNamespace("Opex", $namespace)
$Meta= Select-Xml -Xml $xml -XPath '/Opex:OpexMatadata' -Namespace $namespaceMgr
$doc = [Xml](gc 'c:\\Source\Fakamae_2018005_KM.xml')
$imported=$xml.ImportNode($doc.OPEXMetadata.DescriptiveMetadata.METATRANSCRIPT,$true)
$Meta.Node.AppendChild($imported)
$xml.Save('c:\\Source\Output\Result.xml')
但在这一行:
$Meta= Select-Xml -Xml $xml -XPath '//Opex:OpexMatadata' -Namespace $namespaceMgr
返回此错误:
Select-Xml:无法绑定参数“命名空间”。无法将“System.Xml.XmlNamespaceManager”类型的“System.Xml.XmlNamespaceManager”值转换为“System.Collections.Hashtable”类型。
我做错了什么,我如何解决这个问题?非常感谢您的帮助