AngleSharp使用选择器无法找到元素,求原因解析
问题原因及解决方法
选择器语法错误:你写的选择器
div [class^='styles__Accordion___']中间多了空格,这个空格表示要匹配div元素的子元素中class以styles__Accordion___开头的元素,但你的class是直接定义在div本身上的,自然匹配不到。正确的写法应该去掉空格,改成div[class^='styles__Accordion___']。ParseFragment的使用场景问题:
ParseFragment返回的是HTML片段集合,虽然这里面包含目标div,但如果想更稳妥地定位元素,也可以直接解析完整文档:
修正后的代码示例:
string html = "<div class=\"styles__Accordion___blue\"><h1>Hello</h1></div>"; HtmlParser p = new HtmlParser(); // 方式1:修正选择器 var f = p.ParseFragment(html, null); var e = f.QuerySelector("div[class^='styles__Accordion___']"); // 方式2:解析完整文档 var doc = p.ParseDocument(html); var e2 = doc.QuerySelector("div[class^='styles__Accordion___']");
内容的提问来源于stack exchange,提问作者phil
相关产品推荐
相关产品推荐

