Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Html Agillity Pack-删除重复的br标记,同时忽略空白_C#_Xpath_Html Agility Pack - Fatal编程技术网

C# Html Agillity Pack-删除重复的br标记,同时忽略空白

C# Html Agillity Pack-删除重复的br标记,同时忽略空白,c#,xpath,html-agility-pack,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.Previous

我正在尝试删除重复的
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
然后它不会忽略空白。我希望能够删除重复的
br
标记,同时忽略空白

希望我已经尽可能清楚了,如果您需要更多信息,请让我知道,我将修改我的问题。

您可以使用XPath

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

这将用一个
br
Hi替换所有连续的
br
,感谢您的帮助,我如何保留两个
br
标记。@Mannie删除了一半的
节点
:)删除一半不会起作用,就像文档的部分中有更多的
br
标记,而在第一次匹配时删除的另一部分中有更少的标记,即2个标记一样。。理想情况下,我需要留下两个
br
标记,而不是one@Mannie您可以尝试
//br[以下兄弟姐妹::br[2]]
@har07是的,您已经尝试过了,但没有成功。仍然是相同的输出。
this is an example <br><br> <br><br> more text for example
var nodes = doc.DocumentNode.SelectNodes("//br[following-sibling::br]").ToList();
foreach(var node in nodes)
{
    node.Remove();
}