C# Html敏捷包-在两个注释之间替换Html

C# Html敏捷包-在两个注释之间替换Html,c#,html,html-agility-pack,C#,Html,Html Agility Pack,我正在使用Html Agility Pack构建一个具有不同功能的库 其中之一是: 在HTML中搜索“开始注释标记”和“结束注释标记”之间包含的所有HTML部分 替换与一个搜索字符串匹配的HTML部分的所有HTML 例如: 我需要搜索 你好 拜伊 以下是一个在线示例,演示如何在注释之间获取节点: var doc=new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(html); var docNode=doc.DocumentNode.In

我正在使用Html Agility Pack构建一个具有不同功能的库

其中之一是:

  • 在HTML中搜索“开始注释标记”和“结束注释标记”之间包含的所有HTML部分
  • 替换与一个搜索字符串匹配的HTML部分的所有HTML
例如:

  • 我需要搜索
    
    你好
    拜伊
    
    


    以下是一个在线示例,演示如何在注释之间获取节点:

    var doc=new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    var docNode=doc.DocumentNode.InnerHtml;
    var subjects=doc.DocumentNode.subjects().ToList();
    var startNode=subjects.FindIndex(x=>x.InnerHtml==“”);
    var endEnd=subjects.FindIndex(x=>x.InnerHtml==“”);
    if(startNode!=-1&&endEnd!=1)
    {
    var betweenNodes=subjects.GetRange(startNode+1,endEnd-startNode-1);
    foreach(节点之间的变量节点)
    {
    //显示两次“Hi”,一次显示跨度,一次显示文本
    Console.WriteLine(node.InnerHtml);
    }
    }
    
    以下是一个在线示例,演示如何在注释之间获取节点:

    var doc=new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    var docNode=doc.DocumentNode.InnerHtml;
    var subjects=doc.DocumentNode.subjects().ToList();
    var startNode=subjects.FindIndex(x=>x.InnerHtml==“”);
    var endEnd=subjects.FindIndex(x=>x.InnerHtml==“”);
    if(startNode!=-1&&endEnd!=1)
    {
    var betweenNodes=subjects.GetRange(startNode+1,endEnd-startNode-1);
    foreach(节点之间的变量节点)
    {
    //显示两次“Hi”,一次显示跨度,一次显示文本
    Console.WriteLine(node.InnerHtml);
    }
    }
    
    var doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    var docNode = doc.DocumentNode.InnerHtml;
    
    var descendants = doc.DocumentNode.Descendants().ToList();
    
    var startNode = descendants.FindIndex(x => x.InnerHtml == "<!-- data-example-start-try_1 -->");
    var endEnd = descendants.FindIndex(x => x.InnerHtml == "<!-- data-example-end-try_1 -->");
    
    if (startNode != -1 && endEnd != 1)
    {
        var betweenNodes = descendants.GetRange(startNode + 1, endEnd - startNode - 1);
    
        foreach (var node in betweenNodes)
        {
            // show 2 times "Hi", once for the span, once for the text
            Console.WriteLine(node.InnerHtml);
        }
    }