【发布时间】:2020-04-03 18:28:57
【问题描述】:
有没有人知道任何可以从 html 文件中去除多余空格(换行符、制表符等)的好的 java 库(或单一方法)?所以html文件基本上变成了1行。
谢谢。
更新:看起来没有库可以做到这一点,所以我创建了自己的开源项目来解决这个任务:http://code.google.com/p/htmlcompressor/
【问题讨论】:
标签: java html compression
有没有人知道任何可以从 html 文件中去除多余空格(换行符、制表符等)的好的 java 库(或单一方法)?所以html文件基本上变成了1行。
谢谢。
更新:看起来没有库可以做到这一点,所以我创建了自己的开源项目来解决这个任务:http://code.google.com/p/htmlcompressor/
【问题讨论】:
标签: java html compression
看起来没有库可以做到这一点,所以我创建了自己的开源项目来解决这个任务,也许有人会觉得它有帮助:http://code.google.com/p/htmlcompressor/
【讨论】:
就我个人而言,我刚刚在服务器中启用了 HTTP 压缩,并让我的 HTML 可读。
但是对于你想要的,你可以使用 String.replaceAll() 和一个匹配你指定的正则表达式。在我的脑海中,类似于:
small=large.replaceAll("\\s{2,}"," ");
【讨论】:
标签内依赖多个空格进行格式化,这将是 fubared。
对此要小心。 pre 和 textarea 元素内的文本将被损坏。此外,脚本元素内的内联 javascript 必须以 column; 结尾。最后,如果您使用 html cmets 编写内联 javascript(以避免一些旧的浏览器错误行为),这最终将注释掉整个内联 javascript 代码。
你为什么要这样做?如果您想减小 html 的下载大小,那么您只需要一个 GZIP filter。
【讨论】:
您需要以下库:
com.googlecode.htmlcompressor/htmlcompressor/1.5.2
com.google.javascript/closure-compiler/r1043
com.yahoo.platform.yui/yuicompressor/2.4.6
版本不是最新的,但它们是兼容的。
Closure 用于内联 JavaScript,yui 用于内联 CSS。
import com.googlecode.htmlcompressor.compressor.HtmlCompressor;
import com.googlecode.htmlcompressor.compressor.ClosureJavaScriptCompressor;
import com.google.javascript.jscomp.CompilationLevel;
public class Html {
private static final HtmlCompressor compressor = new HtmlCompressor();
static {
compressor.setPreserveLineBreaks(false);
compressor.setCompressCss(true);
compressor.setCompressJavaScript(true);
compressor.setJavaScriptCompressor(
new ClosureJavaScriptCompressor(CompilationLevel.WHITESPACE_ONLY)
);
}
public static String minify(String html) {
return compressor.compress(html);
}
}
【讨论】:
input.replaceAll("\s+", " ");
将任何空白转换为单个空格
【讨论】:
标签内依赖多个空格进行格式化,这将是 fubared。