Entfernen Sie alle leeren / unnötigen Knoten aus HTML
Was wäre der bevorzugte Weg, um alle leeren und unnötigen Knoten zu entfernen? Zum Beispiel
<p></p>
sollte entfernt werden und<font><p><span><br></span></p></font>
sollte auch entfernt werden (daher wird das br-Tag in diesem Fall als unnötig angesehen)
Muss ich dafür eine Art rekursive Funktion verwenden? Ich denke etwas in der Art von vielleicht:
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();
}
}
}
}
Das funktioniert aber offensichtlich nicht (Stackoverflow-Ausnahme).