私は、Web ページを解析して別の形式に変換する必要がある C# アプリケーションに取り組んでいます。出力形式やユースケースなどに深く入り込むことなく、私の問題は、特定の要素、この場合はほとんどの要素に対して計算された CSS を取得することです。<strong>,<em>,<u>
インライン スタイル、CSS、および書式設定要素などの組み合わせを扱っています。
現在、Web ページを mshtml にロードし、IHTMLElement2 インターフェイスを使用して currentStyle オブジェクトにアクセスしています。これは遅すぎることが証明されています。私はそれをプロファイリングしましたが、 currentStyle.XXX への呼び出しを介してスタイルルールの値を取得するのにかなりの時間が費やされています。複数のプロパティ、つまり background-color、font-family、font-size、text-align、text-decoration などを各要素で繰り返し照会する必要があるため、何千もの COM 呼び出しを行っており、小さなものには数分かかります。資料。最新のブラウザはすべて、これを数分の 1 秒で実行します。私を殺しているのはCOM相互運用性だと思いますか?
より良い方法はありますか?要素に適用されるすべての計算されたスタイル ルールを一度に取得したいと考えています。IHTMLElementAppliedStyles の使い方を知っている人はいますか? それは私が探していることを行いますか、そしてそのインスタンスはどこで入手できますか? 補足: mshtml を取得するために HTML オブジェクト ライブラリを参照していますが、IE9/10 バージョンではないようです。すべてのインターフェイスが利用できるわけではありません。つまり、IHTMLDocument7 です。
ありがとう、