I love structured data. I love how orderly it is, how logical. However, I do not like the repetition. Get the OwnerDoc. Create an Element. Loop over a bunch of AddAttribute calls, AppendChild it someplace. 90% of the time, this is how I build my XML structure. Why not have PowerShell do it?
function New-XmlElement { param ( [System.Xml.XmlElement]$parentElement, [string]$elementName, [hashtable]$attributes = @{}, [string]$text ); if (!$parentElement -or !$ElementName) { return; } $element = $parentElement.OwnerDocument.CreateElement($elementName); foreach ($key in ($attributes.Keys | Sort-Object)) { $element.SetAttribute($key, $attributes[$key]) | Out-Null; } if ($text) { $element.InnerText = $text; } $parentElement.AppendChild($element);}