Forcing XDocument.ToString() to include the closing tag when there is no data
Set the Value
property of each empty XElement
specifically to an empty string.
// Note: This will mutate the specified document.
private static void ForceTags(XDocument document)
{
foreach (XElement childElement in
from x in document.DescendantNodes().OfType<XElement>()
where x.IsEmpty
select x)
{
childElement.Value = string.Empty;
}
}