我正在尝试通过函数调用传递System.XML.XMLDocument对象,但是该对象在函数调用后更改为System.Object[]

更具体地说,我有一个这样的功能:

function GenerateXml()
{

    [System.XML.XMLDocument]$xmlDoc=New-Object System.XML.XMLDocument
    $declaration = $xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes")
    $xmlDoc.AppendChild($declaration)

    [System.XML.XMLElement]$root = $xmlDoc.CreateElement("dummy")
    $root.SetAttribute("Name", "dummy value")
    $xmlDoc.AppendChild($root)
    $xmlDoc
}

[System.XML.XMLDocument]$xmlDoc = GenerateXml

这将输出如下错误:
Cannot convert value "System.Object[]" to type "System.Xml.XmlDocument".

那么通过函数调用传递XMLDocument的最佳方法是什么?

最佳答案

事实证明,Powershell会将方法的所有输出返回到数组。要获取实际的返回值,您可以获取输出数组的最后一个成员,或者只是不输出您实际想要的东西。

关于powershell - Powershell通过函数调用传递XMLDocument,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34885629/

10-12 04:50