Html Agillity Pack - 删除重复的br标签,同时忽略空格

时间:2015-09-09 08:53:00

标签: c# xpath html-agility-pack

我尝试使用以下代码删除重复的br标记:

if (doc.DocumentNode.SelectNodes("//br") != null)
{
    var nodes = doc.DocumentNode.SelectNodes("//br").ToArray();
    foreach (var node in nodes)
    {
        if (node.PreviousSibling != null && node.PreviousSibling.Name == "br")
        {
            node.Remove();        
        }
    }
}

使用上面的代码,我可以删除一个例子:

this is an example <br><br><br><br> more text for example

将输出:

this is an example <br><br> more text for example

但如果br标签有空格,如下所示:

this is an example <br><br> <br><br> more text for example

然后它不会忽略空格。我希望能够删除重复的br标记,同时忽略空格。

希望如果您需要更多信息,我已尽可能清楚,请告诉我,我会修改我的问题。

1 个答案:

答案 0 :(得分:2)

您可以使用XPath

var nodes = doc.DocumentNode.SelectNodes("//br[following-sibling::br]").ToList();
foreach(var node in nodes)
{
    node.Remove();
}

这将使用单个br替换所有后续br