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

本文关键字:元素 DOM 边界 HTMLAgilityPack | 更新日期: 2023-09-27 18:26:37

我的应用程序使用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)的边界框

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

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

您可以尝试添加自定义属性。然后在WebBrowser控件中找到它
像这样的东西。