如何让此 Powershell 函数只返回 $element 的值?



我正在使用Powershell Core 6.2.2,并具有以下功能:

function New-JobElement() {
Param(
[Parameter()]
[String]
$Name,
# This parameter does nothing yet... Planned for future use
[Parameter()]
[String]
$Value
)
[xml] $xml = New-Object Xml.XmlDocument
[System.Xml.XmlElement] $element = $xml.CreateElement("job", $Name, "my.job.uri")
if ($null -ne $Value) {
$element.AppendChild($xml.CreateTextNode($Value))
}
return $element
}

当我调用该函数时,返回的对象似乎是System.Object[]而不是预期的对象。

$foo = New-JobElement -Name "foo" -Value "bar"
Write-Host $foo.getType()

这会将以下内容写出到控制台:

公共的 是序列号基本类型 -------- -------- ----                                     -------- True True Object[] System.Array

因此,我无法将此结果传递给类似XMLDocument.AppendChild().

为什么类型会发生变化,如何让此功能按我想要的方式工作?(即返回 XMLElement)。

更新:如何获取此函数以返回$element

这个:

$element.AppendChild($xml.CreateTextNode($Value))

返回新追加的节点。

$foo确实是一个数组,由AppendChild()发出的节点和您返回的$element组成

相关内容

  • 没有找到相关文章

最新更新