读书人

生成的html文件很乱怎么处理

发布时间: 2012-01-19 00:22:27 作者: rapoo

生成的html文件很乱,怎么办?
源:

de.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;//
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;//StringBuilder 类命名空间
using System.IO;//读取写入命名空间


public partial class Dhtml : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void btnCreate_Click(object sender, EventArgs e)
{
string[] newContent = new string[5];//定义数组用来保存temphtml.html中的标记数目
StringBuilder strhtml = new StringBuilder();//实例化一个strhtml
try
{
//创建StreamReader对象 news为TempHtml.html所在的文件夹
using (StreamReader sr = new StreamReader(Server.MapPath( "news ") + "\\sj.html ",System.Text.Encoding.GetEncoding( "GB2312 ")))
{
string str;
//读取指定的HTML文件模板





while ((str = sr.ReadLine()) != null)
{
strhtml.Append(str);

}


sr.Close();
}
}
catch (Exception err)
{
//异常处理 Response.Write(err.ToString());


}
//为标记数组赋值
newContent[0] = txtTitle.Text;//标题
newContent[1] = "BackColor= '#cccfff ' ";//背景色
newContent[2] = "#ff0000 ";//字体颜色
newContent[3] = "100px ";//字体大小
newContent[4] = txtContent.Text;//主要内容

//根据上面新的内容生成html文件
try
{
//指定要生成的HTML文件
string fname = Server.MapPath( "news ") + "\\ " + DateTime.Now.ToString( "yyyymmddhhmmss ") + ".html ";
//替换html模版文件里的标记为新的内容
for (int i = 0; i < 5; i++)
{
strhtml.Replace( "$htmlkey[ " + i + "] ", newContent[i]);
}
//创建文件信息对象
FileInfo finfo = new FileInfo(fname);
//以打开或者写入的形式创建文件流
using (FileStream fs = finfo.OpenWrite())
{
//根据上面创建的文件流创建写数据流
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding( "GB2312 "));
//把新的内容写到创建的HTML页面中
sw.WriteLine(strhtml);
sw.Flush();
sw.Close();
}
//设置超级链接的属性


hyCreateFile.Text = DateTime.Now.ToString( "yyyymmddhhmmss ") + ".html ";
hyCreateFile.NavigateUrl = "news/ " + DateTime.Now.ToString( "yyyymmddhhmmss ") + ".html ";
}
catch (Exception err)
{
Response.Write(err.ToString());
}
}
}


生成:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <html xmlns= "http://www.w3.org/1999/xhtml "> <head> <meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 " /> <title> 111 </title> <style type= "text/css "> <!--body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;}--> </style> </head> <body> <table BackColor= '#cccfff ' width= "393 " border= "10 " cellpadding= "0 " cellspacing= "0 "> <tr> <td width= "393 " height= "22 " bgcolor= "#6699CC "> <div align= "center "> <script language= "JavaScript "> <!-- var dayNames = new Array( "星期日 ", "星期一 ", "星期二 ", "星期三 ", "星期四 ", "星期五 ", "星期六 ");Stamp = new Date();document.write( " " + Stamp.getYear() + "年 "+(Stamp.getMonth() + 1) + "月 "+Stamp.getDate()+ "日 "+ " " + dayNames[Stamp.getDay()] + " ");//--> </script> <SCRIPT language=javascript> <!--function Year_Month(){ var now = new Date(); var yy = now.getYear(); var mm = now.getMonth(); var mmm=new Array();mmm[0]= "January ";mmm[1]= "February ";mmm[2]= "March ";mmm[3]= "April ";mmm[4]= "May ";mmm[5]= "June ";mmm[6]= "July ";mmm[7]= "August ";mmm[8]= "September ";mmm[9]= "October ";mmm[10]= "November ";mmm[11]= "December ";mm=mmm[mm]; return(mm ); }function thisYear(){ var now = new Date(); var yy = now.getYear(); return(yy ); } function Date_of_Today(){ var now = new Date(); return(now.getDate() ); } function CurentTime(){ var now = new Date(); var hh = now.getHours(); var mm = now.getMinutes(); var ss = now.getTime() % 60000; ss = (ss - (ss % 1000)) / 1000; var clock = hh+ ': '; if (mm < 10) clock += '0 '; clock += mm+ ': '; if (ss < 10) clock += '0 '; clock += ss; return(clock); } function refreshCalendarClock(){ document.all.calendarClock4.innerHTML = CurentTime(); }document.write( ' <font id= "calendarClock1 " > </font> ');document.write( ' <font id= "calendarClock2 " > </font> ');document.write( ' <font id= "calendarClock3 " > </font>   ');document.write( ' <font id= "calendarClock4 " > </font> ');setInterval( 'refreshCalendarClock() ',1000);//--> </SCRIPT> </div> </td> </tr> <tr> <td bgcolor= "#0099FF "> <span style= "color: #ff0000;font-size: 100px "> <marquee> 222 333 444


555 333 777 </marquee> </span> </td> </tr> <tr> <td>   </td> </tr> </table> </body> </html>


[解决办法]
Replace(Environment.NewLine, " <br/> ");
[解决办法]
html代码乱不乱关系不大,知道浏览器能明白就行。
如果需要可以考虑转义字符 \r \t...

读书人网 >asp.net

热点推荐