Remover todos os nós vazios / desnecessários do HTML
Qual seria a maneira preferida de remover todos os nós vazios e desnecessários? Por exemplo
<p></p>
deve ser removido e<font><p><span><br></span></p></font>
também deve ser removido (portanto, a tag br é considerada desnecessária neste caso)
Terei que usar algum tipo de função recursiva para isso? Eu estou pensando em algo ao longo das linhas deste talvez:
RemoveEmptyNodes(HtmlNode containerNode)
{
var nodes = containerNode.DescendantsAndSelf().ToList();
if (nodes != null)
{
foreach (HtmlNode node in nodes)
{
if (node.InnerText == null || node.InnerText == "")
{
RemoveEmptyNodes(node.ParentNode);
node.Remove();
}
}
}
}
Mas isso obviamente não funciona (exceção do stackoverflow).