我尝试使用以下代码删除重复的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
标记,同时忽略空格。
希望如果您需要更多信息,我已尽可能清楚,请告诉我,我会修改我的问题。
答案 0 :(得分:2)
您可以使用XPath
var nodes = doc.DocumentNode.SelectNodes("//br[following-sibling::br]").ToList();
foreach(var node in nodes)
{
node.Remove();
}
这将使用单个br
替换所有后续br
。