During one of my adventures into the world of PowerShell I came across the following error:
Cannot process argument transformation on parameter ‘Environment’. Cannot convert value “System.Xml.XmlElement” to type “System.Xml.XmlDocument”. Error: “The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type.”
First I’ll explain what I’m trying to do.
I’ve got a PowerShell function that takes xml as a parameter
functionย Get-XmlData
{
begin
{
$name = XmlData.Name
}
process
{
}
end
{
}
}
Then I’m calling the above function
[xml]$somexml = …
Get-XmlData -XmlData $somexml
This is where the above error appears.
Solution
Table of Contents
I came across a solution here:
http://stackoverflow.com/questions/18040841/passing-an-xmlelement-to-a-background-job-in-powershell
After a bit of trying out I found an easier solution:
In my function I changed my Parameter to the type of string
ย ย param(
[string]$XmlData
)
and then within my function I convert the string into Xml.
[xml]$XmlDataXml = $XmlData
Discover more from SharePains
Subscribe to get the latest posts sent to your email.
