如何在C#中获取HTMLAgilityPack DOM元素的边界框?

时间:2013-08-07 03:48:37

标签: c# dom rendering html-agility-pack

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

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

  1. 在任意大小的画布上(例如,1900 * 1200像素)在内存中渲染文档。
  2. 在渲染器的DOM树和我已经拥有的HtmlAgilityPack.HtmlDocument之间建立一对一的对应关系。
  3. 在此画布上向渲染器询问特定DOM元素(HtmlAgilityPack.HtmlNode)的边界框。
  4. 我已经花了半天的时间研究.NET的各种HTML渲染引擎,但仍然没有找到办法。也许有人已经解决了类似的问题?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

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