ConvertTo-JsonFromXml.psm1

function ConvertTo-JsonFromXml
{
    Param(
        [Parameter(Mandatory)][String]$XMLData
    )
    $xmldoc = [System.Xml.XmlDataDocument]::new()
    $xmldoc.LoadXml((Remove-UnknownCharactersFromXML -String $XMLData))
    $res = [Newtonsoft.Json.JsonConvert]::SerializeXmlNode($xmldoc,[Newtonsoft.Json.Formatting, Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed]::Indented)
    Write-Output ([Regex]::Replace($res, "@", [string]::Empty, [System.Text.RegularExpressions.RegexOptions]::IgnoreCase))
}
function Remove-UnknownCharactersFromXML
{
    Param(
        [Parameter(Mandatory)]$String
    )
    $specialChars = $String
    [int]$count = 0
    $shouldProceed = $true
    foreach($item in ($specialChars).ToCharArray())
    {
        if($shouldProceed)
        {
            if($item -ne '<')
            {
                $shouldProceed = $true
                $count++
            }
            else{ $shouldProceed = $false }
        }
    }
    return ($specialChars[$count..(($specialChars).ToCharArray().Count - 1)] -join '')
}