2009-04-20 11 views
0

.NetのWebサイトからすべての空白を取り除く最も良い方法は何ですか?このサイトを見つけましたWhitespace removal - 4Wall Art Siteすべての空白を削除しますか?

ソースを見ると明らかに.netサイトですが、不要なタブとスペースはすべて削除されています。今私はそれを検索したページのレンダリングの正規表現が最良の方法だと思われるが、誰も例を持っていますか?またはこれが最良の方法であるかどうかについて相反する意見がありますか?そのサイトのHTMLソースは〜30kbまで下がっていますが、これは私が目指しているものです!

おかげで、 スティーブ

答えて

5

あなたはまだあなたがGZIPをオンにするためにはるかに良いだろうしていない場合は/ compression in IISを収縮させます。ネットワークトラフィックを削減し、パフォーマンスを向上させようとすると、圧縮効果が大きくなり、空白が取り除かれます。

+1

+1これは問題のためのよりよい解決策です。私は正規表現が正しいツールであるとは思わない。 –

+0

Davidさん、ありがとうございました – stibstibstib

+0

もう1つの良い芸術的なテーマはhttp://weblogs.asp.net/owscott/archive/2004/01/12/57916.aspxです –

1

HTML上で正規表現を使用することはほとんどありません(理由はCan you provide some examples of why it is hard to parse XML and HTML with a regex?を参照)。これは実際にはパーサーの仕事です(C#のHTMLパーサーについてはWhat is the best way to parse html in C#?を参照)。あなたがしたいことの擬似コードは、

print tag and attributes with minimal spaces 
if tag is in list of tags whose contents can be to modified 
    strip redundant whitspace from contents 
print contents 
print end tag 

です。内容を変更してはいけないタグの例は、preタグです。

バッシュ:

cat yourhtmlfile.html | sed 's_\ +_\ _g' > newReducedFile.html 

あなたが望むものを達成する必要があり

0

さて、あなたは本当にあなたが正規表現の 'sedの' とperlのbashのを使用することができますしたい場合は、同じことを実現します。 1つ以上のスペースを1つのスペースに入れます。そうすれば、不要な空白の大半がファイルから削除されます。 .netのウェブサイトでは、perlやpythonを使うことができます。 Windows版があります。

0

実際に空白を削除する必要があると感じたら、開始する場所はhttp://www.codeproject.com/KB/aspnet/WhitespaceFilter.aspxです。これは作成者が明らかにしたように記事のコードをコピーするだけではありません。彼らが非常に非効率的にたくさん使う正規表現の良い把握を持っていない。

すべてのページの出力を変更するフィルタを使用する方法をどのように示していますか。

関連する問題