C# CSS选择器。从两个名称相似的类中选择一个

C# CSS选择器。从两个名称相似的类中选择一个,c#,css,anglesharp,C#,Css,Anglesharp,我尝试使用AngleSharpe解析网站,我有以下情况: <div class="list another"> <div class="item1"></div> <div class="item2"></div> </div> ... <div class="list"> <div class="item1"></div> <div class="item2"&

我尝试使用AngleSharpe解析网站,我有以下情况:

<div class="list another">
  <div class="item1"></div>
  <div class="item2"></div>
</div>

...

<div class="list">
  <div class="item1"></div>
  <div class="item2"></div>
</div>
我尝试使用以下各种方法:

"div[class$=list]"
"div.list"
当我对“list”的父类使用选择器时,它不同于“list-other”的父类,比如“parent-class>list”,我什么也得不到


请告诉我如何正确,或在必要时查看以解决此问题

尝试此操作,使用class.list选择所有dom元素,但不使用class.other。因此,您将能够以独占方式选择第二个div

     document.querySelectorAll(".list:not(.another)");

正如其他人提到的,您可以完全使用CSS选择器:

var config=Configuration.Default;
//注意:理想情况下,如果适用,直接从URL加载文档
var document=await BrowsingContext.New(配置)
.OpenAsync(res=>res.Content(@)
测试文件
"));
document.QuerySelector(“.list:not(.other)”).ClassList.Dump();
上面的代码使用LINQPad(请参见
Dump()
),使用AngleSharp 0.14

请注意,这不同于仅使用
。list

最后,您可以利用
queryselectoral
并在后面放置LINQ

要确认,检查具有
列表的所有元素如下所示:

document.QuerySelectorAll(“.list”).Select(m=>m.ClassList.Dump();
我们到哪里去了

例如,以下工作:

文档
.QuerySelectorAll(“列表”)
.Where(m=>m.ClassList.Count()==1)
.Select(m=>m.ClassList)
.FirstOrDefault()
.Dump()
这给了我们与上面的选择器完全相同的
.list:not(.other)
,尽管它有更多的约束(它不知道哪些其他类不应该出现,只确保只放置了所需的类)


希望有帮助

非常感谢大家!它不起作用,因为我并没有注意到这个类正在通过浏览器中的脚本进行更改。因为这个课程在安格尔夏普不可用。我找到了“非脚本”部分。

是您的要求-您想从dom中选择第二个出现的列表吗?是的,这是我的要求将父类作为另一个列表提供。这里两个div具有相同的类名-list。第一个是列表,另一个是类。两者都是单独的类,返回0个元素。这很奇怪。这可能是AngleSharpconsole.log的一项功能outputAfter查询变量不包含元素。需要额外的调试吗
     document.querySelectorAll(".list:not(.another)");