Private/ConvertFrom-Xml.ps1
|
# From https://stackoverflow.com/questions/42636510/convert-multiple-xmls-to-json-list # Use # [xml]$var = Get-Content file.xml # Convert to JSON with # $var | ConvertFrom-XML | ConvertTo-JSON -Depth 3 # Helper function that converts a *simple* XML document to a nested hashtable # with ordered keys. function ConvertFrom-Xml { param([parameter(Mandatory, ValueFromPipeline)] [System.Xml.XmlNode] $node) process { if ($node.DocumentElement) { $node = $node.DocumentElement } $oht = [ordered] @{} $name = $node.Name if ($node.FirstChild -is [system.xml.xmltext]) { $oht.$name = $node.FirstChild.InnerText } else { $oht.$name = New-Object System.Collections.ArrayList foreach ($child in $node.ChildNodes) { $null = $oht.$name.Add((ConvertFrom-Xml $child)) } } $oht } } |