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

标签 c# dom rendering html-agility-pack

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

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

  1. 在任意大小的 Canvas (例如 1900*1200 像素)上渲染内存中的文档。
  2. 在渲染器的 DOM 树和我已有的 HtmlAgilityPack.HtmlDocument 之间设置一对一的对应关系。
  3. 向渲染器请求此 Canvas 上特定 DOM 元素 (HtmlAgilityPack.HtmlNode) 的边界框。

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

最佳答案

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

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

相关文章:

css - 在 Windows 7 上旋转时字体呈现模糊和锯齿状

c# - Microsoft 服务管理器控制台 API?

c# - 设计器中的自定义控件未处理的异常

javascript - 如何为每篇文章应用jquery函数

java - Java 中的高效 XSLT 管道(或将结果重定向到源)

javascript - Android vs Iphone vs Safari/Chrome/FF 上的像素舍入

c# - 如何创建一系列字母和数字的字符串组合?

c# - EntitySetController $expand 和 $select 不工作

JavaScript 无法将字符串中的空格识别为字符

3d - 如何在 JavaFX 中相同地渲染三角形的正面和背面