.NET中如何生成静态页

本文转载自: https://www.cnblogs.com/robber/archive/2007/05/08/738785.html 作者:robber 转载请注明该声明。

静态页.html' target='_self'>如何生成静态页:
 
  
  方案1:  
 
bf0f51e4ff5e050c23dbd2d0d7064f041.jpg bf0f51e4ff5e050c23dbd2d0d7064f042.jpg   /**/ ///   <summary>  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
///   传入URL返回网页的html代码  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
///   </summary>  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
///   <param   name="Url">URL</param>  
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg  
///   <returns></returns>  

bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    public     static       string    getUrltoHtml( string    Url)  
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg  
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  errorMsg   
=   "";  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
try  
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg  
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  System.Net.WebRequest   wReq   
=   System.Net.WebRequest.Create(Url);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//   Get   the   response   instance.  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg
  System.Net.WebResponse   wResp   =wReq.GetResponse();  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//   Read   an   HTTP-specific   property  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//if   (wResp.GetType()   ==HttpWebResponse)  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//DateTime   updated     =((System.Net.HttpWebResponse)wResp).LastModified;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//}  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//   Get   the   response   stream.  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg
  System.IO.Stream   respStream     =   wResp.GetResponseStream();  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
//   Dim   reader   As   StreamReader   =   New   StreamReader(respStream)  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg
  System.IO.StreamReader   reader   =   new   System.IO.StreamReader(respStream,   System.Text.Encoding.GetEncoding("gb2312"));  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
return     reader.ReadToEnd();  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg  }
  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
catch(System.Exception   ex)  
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg  
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  errorMsg   
=   ex.Message   ;  
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg  }
  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg  
return   "";  
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg  }
 

  你可以用这个函数获取网页的客户端的html代码,然后保存到.html文件里就可以了。 
  
  方案2: 
  生成单个的静态页面不是难点,难的是各个静态页面间的关联和链接如何保持完整; 
  特别是在页面频繁更新、修改、或删除的情况下; 
  
  像阿里巴巴的页面也全部是html的,估计用的是地址映射的功能 
  关于地址映射可参考: http://www.easewe.com/Article/ShowArticle.aspx?article=131 
  
  可以看看这个页面,分析一下他的“竞价倒计时”功能 
  http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&Bidding=home5 
  
  ASP.Net生成静态HTML页 
  在Asp中实现的生成静态页用到的FileSystemObject对象! 
  在.Net中涉及此类操作的是System.IO   
  以下是程序代码   注:此代码非原创!参考别人代码 
  
      CODE:        
  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg // 生成HTML页  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
       public     static     bool    WriteFile( string    strText, string    strContent, string    strAuthor)    
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg      
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
string   path   =   HttpContext.Current.Server.MapPath("/news/");  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        Encoding   code   
=   Encoding.GetEncoding("gb2312");  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
//   读取模板文件  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg
        string   temp   =   HttpContext.Current.Server.MapPath("/news/text.html");  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        StreamReader   sr
=null;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        StreamWriter   sw
=null;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
string   str="";      
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
try  
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg        
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          sr   
=   new   StreamReader(temp,   code);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          str   
=   sr.ReadToEnd();   //   读取文件  
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg
        }
  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
catch(Exception   exp)  
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg        
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          HttpContext.Current.Response.Write(exp.Message);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          HttpContext.Current.Response.End();  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          sr.Close();  
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg        }
  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg       
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg         
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
string   htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
//   替换内容  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
//   这时,模板文件已经读入到名称为str的变量中了  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg
        str   =str.Replace("ShowArticle",strText);   //模板页中的ShowArticle  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg
        str   =   str.Replace("biaoti",strText);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        str   
=   str.Replace("content",strContent);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        str   
=   str.Replace("author",strAuthor);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
//   写文件  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg
        try  
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg        
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          sw   
=   new   StreamWriter(path   +   htmlfilename   ,   false,   code);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          sw.Write(str);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          sw.Flush();  
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg        }
  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
catch(Exception   ex)  
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg        
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          HttpContext.Current.Response.Write(ex.Message);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          HttpContext.Current.Response.End();  
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg        }
  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
finally  
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg        
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg          sw.Close();  
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg        }
  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg        
return   true;  
   
  此函数放在Conn.CS基类中了 
  在添加新闻的代码中引用   注:工程名为Hover  
   
        
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    if (Hover.Conn.WriteFilethis.Title.Text.ToString), this .Content.Text.ToString), this .Author.Text.ToString)))  
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg          
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg            Response.Write(
"添加成功");  
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg          }
  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg          
else   
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg          
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg            Response.Write(
"生成HTML出错!");  
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg          }
     
   
  模板页Text.html代码  
      CODE:        
 
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   <! DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"    >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
< HTML >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
< HEAD >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg      
< title > ShowArticle </ title >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg        
< body >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  biaoti  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
< br >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  content
< br >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  author  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
</ body >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
</ HTML >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  biaoti  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
< br >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  content
< br >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  author  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
</ body >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
</ HTML >     

  提示添加成功后会出以当前时间为文件名的html文件!上面只是把传递过来的几个参数直接写入了HTML文件中,在实际应用中需要先添加数据库,然后再写入HTML文件 
  
  方案3: 
  给一个客户端参考的例子(SJ) 
  它的作用在于以客户端的方式获取某个页面的代码,然后可以做为其他用途,本例是直接输出  
  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg < script >   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg          
var    oXmlHttp    =     new    ActiveXObject( " Microsoft.XMLHTTP " );  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg          oXmlHttp.open(
" GET " , " http://www.163.com " ,    false );  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg          oXmlHttp.send()  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg          
var    oStream    =     new    ActiveXObject( " ADODB.Stream " );  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg          
if (oStream    ==     null )  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg                  alert(
" 您的机器不支持ADODB.Stream. " )  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg          
else   
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg          
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Type
=1;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Mode
=3;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Open()   ;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Write(oXmlHttp.responseBody);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Position
=   0;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Type
=   2;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Charset
="gb2312";  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  
var   result=   oStream.ReadText();  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream.Close();  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  oStream   
=   null;  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg      
var   aa   =   window.open("","")  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg      document.write(result);  
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg                  aa.document.write(result);  
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg          }
  
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg  
</ script >   
   
  方案4:学csdn一样。用xml保存数据,模版XSL也只有一个文件。 
  使用xml来保存数据,使用xsl来定义模板并且生称数据。可以通过xsl来很方便的在客户端或者服务段显示数据。如果要生成静态叶面那更简单了。去查一下.net的xml类包问题解决。 
                          优点:可以方便快速转换成你想要的格式和内容。 
                          缺点:需要学习更多的内容,不好入门。 
  
  方案5: 
  思路   
  
    1.   利用如Dw-Mx这样的工具生成html格式的模板,在需要添加格式的地方加入特殊标记(如$htmlformat$),动态生成文件时利用代码读取此模板,然后获得前台输入的内容,添加到此模板的标记位置中,生成新文件名后写入磁盘,写入后再向数据库中写入相关数据。 
                2.   使用后台代码硬编码Html文件,可以使用HtmlTextWriter类来写html文件。   
  优点   
  
    1.   可以建立非常复杂的页面,利用包含js文件的方法,在js文件内加入document.write()方法可以在所有页面内加入如页面头,广告等内容。   
  
    2.   静态html文件利用MS   Windows2000的Index   Server可以建立全文搜索引擎,利用asp.net可以以DataTable的方式得到搜索结果。而Win2000的Index服务无法查找xml文件的内容。如果包括了数据库搜索与Index索引双重查找,那么此搜索功能将非常强大。   
  
    3.   节省服务器的负荷,请求一个静态的html文件比一个aspx文件服务器资源节省许多。   
  
    缺点   
  
     思路二:   如果用硬编码的方式,工作量非常大,需要非常多的html代码。调试困难。而且使用硬编码生成的html样式无法修改,如果网站更换样式,那么必须得重新编码,给后期带来巨大的工作量。   
  
    因此这里采用的是第一种思路   
  
     示列代码   
  
     1.定义(template.htm)html模板页面   
  
    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg <html>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <head>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <title></title>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    </head>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <body   >    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <table   $htmlformat[0]   height="100%"   border="0"   width="100%"   cellpadding="10"   cellspacing="0"   bgcolor="#eeeeee"   style="border:1px   solid   #000000">    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <tr>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <td   width="100%"   valign="middle"   align="left">    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    <span   style="color:   $htmlformat[1];font-size:   $htmlformat[2]">$htmlformat[3]</span>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    </td>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    </tr>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    </table>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    </body>    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    </html>    
   
    2.asp.net代码:   
  
    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg // ---------------------读html模板页面到stringbuilder对象里----    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
string []   format = new     string [ 4 ]; // 定义和htmlyem标记数目一致的数组    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    StringBuilder   htmltext
= new    StringBuilder();    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
try     
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg    
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     
using   (StreamReader   sr   =   new   StreamReader("存放模板页面的路径和页面名"))    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg     
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg    String   line;    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg    
while   ((line   =   sr.ReadLine())   !=   null)    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg    
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     htmltext.Append(line);    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg    }
    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg    sr.Close();    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg     }
    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg    }
    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
catch     
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg    
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     Response.Write(
"<Script>alert('读取文件错误')</Script>");    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg    }
    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
// ---------------------给标记数组赋值------------    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    format[
0 ] = " background= " bg.jpg "" ; // 背景图片    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    format[
1 ] =     " #990099 " ; // 字体颜色    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    format[
2 ] = " 150px " ; // 字体大小    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    format[
3 ] =     " <marquee>生成的模板html页面</marquee> " ; // 文字说明    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
// ----------替换htm里的标记为你想加的内容    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
for ( int    i = 0 ;i< 4 ;i ++ )    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg    
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     htmltext.Replace(
"$htmlformat["+i+"]",format[i]);    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg    }
    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
// ----------生成htm文件------------------――    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg
   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
try     
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg    
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     
using(StreamWriter   sw=new   StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312")))    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f0413.jpgbf0f51e4ff5e050c23dbd2d0d7064f0414.jpg    
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg{    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     sw.WriteLine(htmltext);    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     sw.Flush();    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg     sw.Close();    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f0430.jpg    }
    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg    }
    
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg    
catch     
bf0f51e4ff5e050c23dbd2d0d7064f047.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f041.jpgbf0f51e4ff5e050c23dbd2d0d7064f042.jpg    
bf0f51e4ff5e050c23dbd2d0d7064f0410.jpg {    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg    Response.Write   (
"The   file   could   not   be   wirte:");    
bf0f51e4ff5e050c23dbd2d0d7064f043.jpg   
bf0f51e4ff5e050c23dbd2d0d7064f046.jpg    }
    
   
    小结   
    用此方法可以方便的生成html文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快。
原文:http://www.chinaz.com/Program/.NET/050N1612007.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
…… 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文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值