1

使用 HtmlAgilityPack,我这样做

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

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

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

1 回答 1

3

首先,您使用SelectSingleNodebut 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>();
于 2015-12-21T11:10:25.823 回答