0

从 .Net 网站中去除所有空格的最佳方法是什么?我找到了这个网站空白删除 - 4Wall 艺术网站

如果您查看源代码,它显然是一个 .net 站点,但所有不需要的选项卡和空格都被删除了。现在我搜索了一下,页面渲染上的正则表达式似乎是最好的方法,但是有人有任何例子吗?或者关于这是否是最好的方法有任何相互矛盾的意见?该站点上的 html 源代码已降至 ~30kb,这是我正在努力实现的目标!

谢谢,史蒂夫

4

4 回答 4

5

如果您还没有在 IIS中打开 gzip/deflate 压缩,您会做得更好。如果您尝试减少网络流量并提高性能,则压缩具有更大的效果,然后删除空白。

于 2009-04-20T12:29:53.940 回答
1

您几乎不应该尝试在 HTML 上使用正则表达式(请参阅Can you provide some examples of why it is hard to parse XML and HTML with a regex? for why)。对于解析器来说,这确实是一项工作(请参阅What is the best way to parse the best way to parse html in C#? for HTML parser for 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 标记。

于 2009-04-20T14:09:50.003 回答
0

好吧,如果你真的想要,你可以使用 bash 'sed' 和 perl 正则表达式将达到同样的效果:

重击:

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

那应该达到你想要的。它将一个或多个空格变成一个空格。这应该会从您的文件中删除大部分不必要的空白。对于 .net 网站,您可以使用 perl 或 python。有windows版本。

于 2009-04-21T01:50:14.890 回答
0

如果您真的觉得需要删除空白一个开始的地方是看看http://www.codeproject.com/KB/aspnet/WhitespaceFilter.aspx,我强调这应该只是一个开始的地方不要只需复制文章中的代码,因为作者显然没有很好地掌握正则表达式,他们以非常低效的方式使用了很多。

它如何显示使用过滤器修改所有页面的输出的技术。

于 2009-04-21T08:34:15.650 回答