Удалить все пустые / ненужные узлы из HTML
Какой предпочтительный способ удалить все пустые и ненужные узлы? Например
<p></p>
должны быть удалены и<font><p><span><br></span></p></font>
также следует удалить (поэтому в этом случае тег br считается ненужным)
Должен ли я использовать какую-то рекурсивную функцию для этого? Я думаю что-то вроде этого:
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();
}
}
}
}
Но это, очевидно, не работает (исключение stackoverflow).