私のアプリケーションは、HtmlAgilityPackを使用して HTML ドキュメントをダウンロードし、多くの XPath クエリで DOM 構造を分析します。免責事項: XPath のサポートは、私の目的にとって非常に重要です。たとえば、CSS セレクターに切り替えることはできません。これが、私が HtmlAgilityPack を使用する主な (そしておそらく唯一の) 理由です。
HtmlAgilityPack.HtmlNode
XPath クエリを含む HTML ドキュメントから選択した があります。ここで、もう 1 つのメソッドを実装する必要があります。この要素が何らかのエンジンによってレンダリングされた場合、この要素のバウンディング ボックスの座標はどうなるでしょうか? WebKit、MSIE、Gecko/Firefox など、どの特定のエンジンが使用されているかは気にしません。次の方法が必要なだけです。
- 任意のサイズのキャンバス (たとえば、1900*1200 ピクセル) 上のメモリ内のドキュメントをレンダリングします。
HtmlAgilityPack.HtmlDocument
レンダラーの DOM ツリーと既に持っているとの間に 1 対 1 の対応をセットアップします。HtmlAgilityPack.HtmlNode
このキャンバス上の特定の DOM 要素 ( ) の境界ボックスをレンダラーに要求します。
私は既に .NET 用のさまざまな HTML レンダリング エンジンを半日かけて調べましたが、まだこれを行う方法が見つかりませんでした。たぶん、誰かがすでに同様の問題を解決していますか?助けてくれてありがとう。