我正在尝试通过函数调用传递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/