Убрать все пробелы? - PullRequest
       7

Убрать все пробелы?

0 голосов
/ 20 апреля 2009

Какой лучший способ убрать все пробелы с веб-сайта .Net? Я нашел этот сайт Удаление пробелов - 4Wall Art Site

Если вы посмотрите на источник, это явно сайт .net, но все ненужные вкладки и пробелы удалены. Теперь я искал, кажется, регулярное выражение на странице рендеринга - лучший метод, но есть ли у кого-нибудь примеры? Или какие-то противоречивые мнения о том, является ли это лучшим способом? Источник html на этом сайте имеет размер ~ 30 КБ, к чему я стремлюсь!

Спасибо, Стив

Ответы [ 4 ]

5 голосов
/ 20 апреля 2009

Если вы еще этого не сделали, вам лучше включить сжатие gzip / deflate в IIS . Если вы пытаетесь уменьшить сетевой трафик и повысить производительность, сжатие имеет больший эффект, чем удаление пробелов.

1 голос
/ 20 апреля 2009

Вы почти никогда не должны пытаться использовать регулярное выражение в HTML (см. . Можете ли вы привести некоторые примеры того, почему трудно проанализировать XML и HTML с регулярным выражением? , почему). Это действительно работа для парсера (см. Каков наилучший способ анализа html в C #? для HTML-парсеров для 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.

0 голосов
/ 21 апреля 2009

Если вы действительно чувствуете, что нужно убрать пробел, с которого стоит начать, посмотрите на http://www.codeproject.com/KB/aspnet/WhitespaceFilter.aspx, я подчеркиваю, что это должно быть только начало, а не просто скопируйте код в статье как у автора явно не было хорошего понимания регулярных выражений, которые они часто используют очень неэффективно.

Как все это показывает технику использования фильтра для изменения вывода всех страниц.

0 голосов
/ 21 апреля 2009

Что ж, если вы действительно хотите, вы можете использовать bash 'sed', и Perl regex достигнет того же:

Bash:

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

Это должно достичь того, что вы хотите. Это будет один или несколько пробелов в одном месте. Это должно удалить большую часть ненужных пробелов из вашего файла. Для сайта .net вы можете использовать Perl или Python. Есть версии для Windows.

...