private/ConvertTo-XmlTag.ps1
|
function ConvertTo-XmlTag{ [CmdletBinding()] param ( [Parameter(Mandatory, Position=0)] [string]$TagName, [Parameter(Position=1)] [string]$Content, [Parameter(Position=2)] [ValidateSet('Salesforce', 'Url', 'Xml')] [string]$EncodingStyle = 'Xml', [Parameter()] [switch]$IsTrueFalseNull, [Parameter()] # [switch]$SkipBlank, [switch]$ForceEmptyTag, [Parameter()] [int]$MaxLen ) $ErrorActionPreference = 'Stop' [bool] $IsDebug = $DebugPreference -ne 'SilentlyContinue' [bool] $IsVerbose = $VerbosePreference -ne 'SilentlyContinue' $Content = $Content.Trim() if ($MaxLen -and ($Content.Length -gt $MaxLen)) { $Content = $Content.SubString(0, $MaxLen).Trim() } if ($IsTrueFalseNull) { $xml = switch ($Content) { 'X' { "<$TagName>true</$TagName>" } '--' { "<$TagName>false</$TagName>" } '-' { "<$TagName>false</$TagName>" } 'true' { "<$TagName>true</$TagName>" } 'false' { "<$TagName>false</$TagName>" } '.' { '' } '' { $ForceEmptyTag ? "<$TagName></$TagName>" : '' } Default { '' } } } else { $xml = switch ($Content) { '.' { '' } '' { $ForceEmptyTag ? "<$TagName></$TagName>" : '' } Default { "<$TagName>$(ConvertTo-EncodedString $Content $EncodingStyle)</$TagName>" } } } return $xml } |