Click Here

相信能,才能
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Asp.net动态生成html页面

Posted on 2006-09-08 16:35  鬼手  阅读(537)  评论(0)    收藏  举报

示列代码

  1.定义(template.htm)html模板页面

<html> 

  
<head> 

  
<title></title> 

  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 

  
</head> 

  
<body > 

  
<table $htmlformat[0] height="100%" border="0" width="100%" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" style="border:1px solid #000000"> 

  
<tr> 

  
<td width="100%" valign="middle" align="left"> 

  
<span style="color: $htmlformat[1];font-size: $htmlformat[2]">$htmlformat[3]</span> 

  
</td> 

  
</tr> 

  
</table> 

  
</body> 

  
</html> 



2.asp.net代码:
 

//---------------------读html模板页面到stringbuilder对象里---- 

  
string[] format=new string[4];//定义和htmlyem标记数目一致的数组 

  StringBuilder htmltext
=new StringBuilder(); 

  
try 

  


  
using (StreamReader sr = new StreamReader("存放模板页面的路径和页面名")) 

  


  String line; 

  
while ((line = sr.ReadLine()) != null

  


  htmltext.Append(line); 

  }
 

  sr.Close(); 

  }
 

  }
 

  
catch 

  


  Response.Write(
"<Script>alert('读取文件错误')</Script>"); 

  }
 

  
//---------------------给标记数组赋值------------ 

  format[
0]="background=\"bg.jpg\"";//背景图片 

  format[
1]= "#990099";//字体颜色 

  format[
2]="150px";//字体大小 

  format[
3]= "<marquee>生成的模板html页面</marquee>";//文字说明 

  
//----------替换htm里的标记为你想加的内容 

  
for(int i=0;i<4;i++




  htmltext.Replace(
"$htmlformat["+i+"]",format[i]); 

  }
 

  
//----------生成htm文件------------------―― 

  
try 

  


  
using(StreamWriter sw=new StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312"))) 

  


  sw.WriteLine(htmltext); 

  sw.Flush(); 

  sw.Close(); 

  }
 

  }
 

  
catch 

  


  Response.Write (
"The file could not be wirte:"); 

  }
 

小结

  用此方法可以方便的生成html文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快。