.NET输出紧凑HTML
好代码,当然要保留呀。呵呵
如图:
方法一:
private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"/n/s*", RegexOptions.Compiled);
private static readonly Regex REGEX_LINE_SPACE = new Regex(@"/n/s*/r", RegexOptions.Compiled);
private static readonly Regex REGEX_SPACE = new Regex(@"( )+", RegexOptions.Compiled);
protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
html = REGEX_LINE_BREAKS.Replace(html, string.Empty);
html = REGEX_LINE_SPACE.Replace(html, string.Empty);
html = REGEX_SPACE.Replace(html, " ");
writer.Write(html.Trim());
}
}
方法二:
private static readonly Regex regReplaceBlank = new Regex(">(//s+)<", RegexOptions.IgnoreCase);
private static readonly Regex regReplaceLine = new Regex("//s//n", RegexOptions.IgnoreCase);
protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
html = regReplaceBlank.Replace(regReplaceLine.Replace(html, ""), "><");
writer.Write(html.Trim());
}
}
方法三:www.2cto.com
private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"/n/s*", RegexOptions.Compiled);
private static readonly Regex REGEX_LINE_SPACE = new Regex(@"/n/s*/r", RegexOptions.Compiled);
private static readonly Regex REGEX_SPACE = new Regex(@"( )+", RegexOptions.Compiled);
private static readonly Regex regReplaceBlank = new Regex(">(//s+)<", RegexOptions.IgnoreCase);
private static readonly Regex regReplaceLine = new Regex("//s//n", RegexOptions.IgnoreCase);
protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
html = REGEX_LINE_BREAKS.Replace(html, string.Empty);
html = REGEX_LINE_SPACE.Replace(html, string.Empty);
html = REGEX_SPACE.Replace(html, " ");
html = regReplaceBlank.Replace(regReplaceLine.Replace(html, ""), "><");
writer.Write(html.Trim());
}
}
摘自 jacky_163的专栏