0

我正在尝试使用另一个过时的 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”类型。

我做错了什么,我如何解决这个问题?非常感谢您的帮助

4

0 回答 0