如何使用 AngleSharp select 节点和父节点?

How to select node and parent nodes with AngleSharp?

使用 HtmlAgilityPack,我这样做

var elements= HAPdoc.DocumentNode.SelectSingleNode(XPathSelector).AncestorsAndSelf()

关于如何使用 AngleSharp 和 CSS 选择器执行此操作的任何想法?

var elements = AngleSharpDoc.QuerySelectorAll("Some CSS selector ?");

首先,您使用 SelectSingleNodeQuerySelectorAll。前者选择 1(一个!)个节点,后者选择 n(许多!)个节点。因此,只需使用 QuerySelector。其次,对于单个节点,AngleSharp 在 AngleSharp.Extensions 命名空间中为您提供了相当多的扩展。

你会发现

var elements = document.QuerySelector("...").Ancestors();

如果您同时想要(child 及其 parents),我会推荐类似

的内容
var child = document.QuerySelector("...");
var elements = child.Ancestors().ToList();
elements.Insert(child, 0);

祖先列表是 INode 上的可枚举列表。如果您只对 IElement 实例感兴趣,您也可以使用

var elements = document.QuerySelector("...").Ancestors<IElement>();