3
删除所有空的和不必要的节点的首选方法是什么?例如从HTML中删除所有空白/不必要的节点
<p></p>
应该被删除,<font><p><span><br></span></p></font>
也应删除(所以BR标签被认为在这种情况下unneccesery)
我将不得不使用某种形式的递归函数的这个?我在想这个可能是:
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例外)。不应该删除您可以添加名称到列表中,并与属性节点
有一个** “空”和“不必要”之间的巨大差异。删除空节点可能会损坏布局。 – 2012-07-20 12:14:30
好吧,所以我最好不要删除空节点? – 2012-07-20 12:17:25
可能不是,没有。另一个原因:如果你真的打算将'img'元素视为空白,我会感到惊讶。 – hvd 2012-07-20 12:20:23