2009-07-07 12 views
0

HTMLスニペット(ドキュメント全体ではありません)を取得し、対応する標準HTMLに相当する.NETユーティリティがありますか?自動HTML標準化?

IEの場合、<b>die Bundesliga Mannschaften</b><span style="font-weight:bold">die Bundesliga Mannschaften</span>の両方が同じものに解決されます。

私は何も修復しようとしていませんが、最終的な出力に一貫性のある形式が得られるように、形式の整った古いテキストも標準化しています。

おかげ

+0

インラインまたはソース? – Lazarus

+1

例(b vs span)は等価ではありません。他のスタイルシートを適用せずに類似しているかもしれませんが、セマンティクスは異なります。 – sisve

+0

はい、私はこれらが同一ではないことを知っています。私がやっていることは、あなたの典型的なHTML Tidyタイプの操作ではなく、珍しいことです。それでも、誰かがこれをやろうとしていると確信しています。 – Paul

答えて

0

Microsoft.mshtml名前空間に必要なものが見つかりました。

1

私の知る.NETで任意のHTML正規化ツールはありませんが、しかし、開始するには良い場所はTidy(またはfork of the original)です。その時点で、.NetのHTMLをDOM文書として解釈できる可能性があります。その後、あなたが設定したいくつかの規則に基づいてさまざまな部分を変換できます。あなたがXHTMLを与えられているなら、あなたの仕事はあなたの正規化コードの一部としてスタイル属性を扱うための単なるCSSインタプリタを必要とし、ずっと簡単かもしれません。

また、HtmlCleanerをJavaから.Netに移植することもできます。

+0

これはまさに私が解決策を構想したもので、CSSフォーマット属性を保持するDOMまたは擬似DOMメモリ構造にHTMLを解析し、HTML文字列を出力します。 – Paul

+0

しかし、私は最初のポイントとして整頓したフォークを提案します。ネストされたスパン/ divをマージする、無関係なマークアップをクリーンアップするなどの処理を行います。少なくとも、あなたはきれいで信頼できるHTMLをDOMに変換するでしょう。次に、そのCSSパーサーは、すべてLinq-to-XMLを作成しています... – user7116

1

あなたが提供する文字列は、有効な標準準拠のHTMLであることに注意してください。同等のプレゼンテーションマークアップを標準形式に変換することをお勧めします。私はこれを自動的に行うツールは知らないが、XSLTを使ってそれを解決することができる。

編集:sixlettervariablesは、XSLTでCSSを解析できないことを指摘しています。だから、この方法は<b><span style="font-weight:bold">に変換することです.-)

+0

トリックは、XSLTがCSSを処理することになります!同じスタイル属性の2番目のCSS文を想像してみてください。楽しい問題ではありません。 – user7116

関連する問題