我的应用程序使用HtmlAgilityPack下载HTML文档并通过许多XPath查询来分析其DOM结构。免责声明:对我而言,对XPath的支持非常重要,例如,我不能切换到CSS选择器。这是我使用HtmlAgilityPack的主要(也是唯一的)原因。

我有一个HtmlAgilityPack.HtmlNode,它是从带有一些XPath查询的HTML文档中选择的。现在,我需要实现另一种方法:如果该元素是由某些引擎渲染的,则其边界框坐标是什么?我什至都不在乎使用哪个特定的引擎,让它成为WebKit,MSIE,Gecko / Firefox等。我只需要一种方法即可:


在任意大小的画布(例如1900 * 1200像素)上在内存中呈现文档。
在渲染器的DOM树和我已经拥有的HtmlAgilityPack.HtmlDocument之间建立一对一的对应关系。
向渲染器询问此画布上特定DOM元素(HtmlAgilityPack.HtmlNode)的边界框。


我已经花了半天的时间研究.NET的各种HTML渲染引擎,但仍然没有找到实现此目的的方法。也许有人已经解决了类似的问题?感谢您的任何帮助。

最佳答案

您可以尝试添加自定义属性。然后在WebBrowser控件中找到它。
类似于this

关于c# - 如何在C#中获取HTMLAgilityPack DOM元素的边界框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18094321/

10-11 23:33