我正在尝试将XML节点从一个文档导入另一个文档。我在XmlDocument上使用两个参数调用ImportNode方法 - node和boolean parameter。
...
$connectionString = $anotherWebConfig.SelectSingleNode("//add[@name='ConnectionString']")
$WebConfig.ImportNode($connectionString, $True)
$WebConfig.SelectSingleNode("//connectionStrings").AppendChild($connectionString)
但我收到了错误
Exception calling "AppendChild" with "1" argument(s): "The node to be inserted is from a different document context."
我知道导入一定有问题。我试图将$ True参数更改为1,0,10并删除它但它仍然没有帮助。令我惊讶的是,即使我使用无效参数调用此方法,它也会毫无例外地通过。
使用布尔参数从powershell调用.NET方法的正确方法是什么?
答案 0 :(得分:1)
你似乎在这里误解了这个问题 - 问题不是布尔参数,而是你尝试追加原始节点,而不是导入节点:
$WebConfig.ImportNode($connectionString, $True) # <-- great effort to import node
$WebConfig.SelectSingleNode("//connectionStrings").AppendChild($connectionString)
# ^
# |
# Yet still appending the original
将导入的节点(从ImportNode()
返回)分配给变量,并将 引用为AppendChild()
的参数:
$ImportedNode = $WebConfig.ImportNode($connectionString, $True)
$WebConfig.SelectSingleNode("//connectionStrings").AppendChild($ImportedNode)