使用 HtmlAgilityPack,我这样做
var elements= HAPdoc.DocumentNode.SelectSingleNode(XPathSelector).AncestorsAndSelf()
关于如何使用 AngleSharp 和 CSS 选择器执行此操作的任何想法?
var elements = AngleSharpDoc.QuerySelectorAll("Some CSS selector ?");
使用 HtmlAgilityPack,我这样做
var elements= HAPdoc.DocumentNode.SelectSingleNode(XPathSelector).AncestorsAndSelf()
关于如何使用 AngleSharp 和 CSS 选择器执行此操作的任何想法?
var elements = AngleSharpDoc.QuerySelectorAll("Some CSS selector ?");
首先,您使用SelectSingleNode
but QuerySelectorAll
。前者选择 1(一个!)节点,后者选择 n(许多!)节点。因此,只需使用QuerySelector
. 其次,对于单个节点,AngleSharp 在AngleSharp.Extensions
命名空间中为您提供了相当多的扩展。
你会找到
var elements = document.QuerySelector("...").Ancestors();
如果你想要(孩子和它的父母)我会推荐类似的东西
var child = document.QuerySelector("...");
var elements = child.Ancestors().ToList();
elements.Insert(child, 0);
祖先列表是一个可枚举的 over INode
。如果您只对实例感兴趣,IElement
您也可以使用
var elements = document.QuerySelector("...").Ancestors<IElement>();