首页 新闻 会员 周边

C# 正则根据某个class 匹配所有html元素

0
悬赏园豆:15 [已解决问题] 解决于 2020-10-10 10:09

<a onclick="" id="ContentPlaceHolder1_rpt_list_LinkButton2_0" class="btn btn-danger btn-xs delete ROLE_Button_SaveSysConfig" href="" style="display: inline-block;">保存</a>

<input type="text" onclick="" id="ContentPlaceHolder1_rpt_list_LinkButton2_0" class="btn btn-danger btn-xs delete ROLE_Button_SaveSysConfig" href="" style="display: inline-block;" />

根据class包含 “ROLE_Button_SaveSysConfig” 匹配出上面的元素,不一定是a标签不一定是input,有可能是div,li span 等等,只要class包含了 就匹配出来这个闭合元素

华北峰的主页 华北峰 | 初学一级 | 园豆:9
提问于:2019-07-12 12:04
< >
分享
最佳答案
0

换HtmlAgilityPack 解决了

华北峰 | 初学一级 |园豆:9 | 2019-07-12 17:01
其他回答(2)
0

换个方式:HtmlAgilityPack + Linq 简洁方便。

花飘水流兮 | 园豆:13560 (专家六级) | 2019-07-12 13:18

嗯 用HtmlAgilityPack 解决了

支持(0) 反对(0) 华北峰 | 园豆:9 (初学一级) | 2019-07-12 17:00
0

可以使用 AngleSharp ,示例代码如下:

class Program
{
    static async Task Main(string[] args)
    {
        var html = @"<a onclick="""" id=""ContentPlaceHolder1_rpt_list_LinkButton2_0"" class=""btn btn-danger btn-xs delete ROLE_Button_SaveSysConfig"" href="""" style=""display: inline-block;"">保存</a>
                        <input type=""text"" onclick="""" id=""ContentPlaceHolder1_rpt_list_LinkButton2_0"" class=""btn btn-danger btn-xs delete ROLE_Button_SaveSysConfig"" href="""" style=""display: inline-block;"" />";

        var context = BrowsingContext.New(Configuration.Default);
        var document = await context.OpenAsync(req => req.Content(html));
        var elements = document.QuerySelectorAll(".ROLE_Button_SaveSysConfig");
        foreach(var element in elements)
        {
            Console.WriteLine(element.Id);
        }
    }
}
收获园豆:15
dudu | 园豆:30994 (高人七级) | 2019-07-12 13:42

换HtmlAgilityPack 解决了

支持(0) 反对(0) 华北峰 | 园豆:9 (初学一级) | 2019-07-12 17:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册