如何使用 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 ?");
首先,您使用 SelectSingleNode
但 QuerySelectorAll
。前者选择 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>();
使用 HtmlAgilityPack,我这样做
var elements= HAPdoc.DocumentNode.SelectSingleNode(XPathSelector).AncestorsAndSelf()
关于如何使用 AngleSharp 和 CSS 选择器执行此操作的任何想法?
var elements = AngleSharpDoc.QuerySelectorAll("Some CSS selector ?");
首先,您使用 SelectSingleNode
但 QuerySelectorAll
。前者选择 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>();