• C#生成静态两方法


    -、模板

    模板文件

    template.html

    <!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>
        
    <title> $title$ 生成静态页的Demo</title>
        
    <style type="text/css">
    <!--
    .STYLE1 
    {
        font-size
    : 16px;
        font-weight
    : bold;
    }
    -->
        
    </style>
    </head>
    <body>
    <br />
    <br />
    <table width="100%" border="0" bgcolor="#339900">
      
    <tr>
        
    <td height="34" align="center" bgcolor="#FFFFFF"><span class="STYLE1">$title$ </span></td>
      
    </tr>
      
    <tr>
        
    <td height="42" bgcolor="#FFFFFF"><br />
          
    <br />
        内容:$content$ 
    </td>
      
    </tr>
    </table>

    </body>
    </html>

    后台代码

    using System;
    using System.IO;
    using System.Text;


    public partial class _Default : System.Web.UI.Page 
    {
            
    protected void Page_Load(object sender, EventArgs e)
            {
                
    //源码是替换掉模板中的特征字符

                
    string mbPath = Server.MapPath("template.html");
                Encoding code 
    = Encoding.GetEncoding("gb2312");
                StreamReader sr 
    = null;
                StreamWriter sw 
    = null;
                
    string str = null;

                
    //读取
                try
                {
                    sr 
    = new StreamReader(mbPath, code);
                    str 
    = sr.ReadToEnd();

                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    finally
                {
                    sr.Close();
                }

                
    //根据时间自动重命名,扩展名也可以自行修改
                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss"+ ".aspx";
                str 
    = str.Replace("$title$""123asdfasf");//替换Title
                str = str.Replace("$content$""asdf2354234");//替换content

                
    //生成静态文件
                try
                {
                    sw 
    = new StreamWriter(Server.MapPath("htm/"+ fileName, false, code);
                    sw.Write(str);
                    sw.Flush();

                }
                
    catch (Exception ex)
                {
                    
    throw ex;
                }
                
    finally
                {
                    sw.Close();
                    Response.Write(
    "恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已经生成,保存在htm文件夹下!");
                }

            }
    }

    二、抓取网页代码生成静态

    using System;
    using System.IO;
    using System.Net;
    using System.Text;

    public partial class _Default : System.Web.UI.Page 
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    string jjj = "0025f9b44a5ca87f";

            
    string contenthtml = GetWebContent("http://www.by84.com/R"+jjj);
            
    //Response.Write(contenthtml);

            System.IO.StreamWriter sw;
            sw 
    = new System.IO.StreamWriter(Server.MapPath("R"+jjj+".aspx"), false, System.Text.Encoding.Default);
            sw.Write(contenthtml);
            sw.Close();
            Response.Write(
    "成功");

        }
        
    public static string GetWebContent(string Url)
        {
            
    string strResult = "";
            
    try
            {
                HttpWebRequest request 
    = (HttpWebRequest)WebRequest.Create(Url);
                
    //声明一个HttpWebRequest请求
                request.Timeout = 30000;
                
    //设置连接超时时间
                request.Headers.Set("Pragma""no-cache");
                HttpWebResponse response 
    = (HttpWebResponse)request.GetResponse();
                Stream streamReceive 
    = response.GetResponseStream();
                Encoding encoding 
    = Encoding.GetEncoding("GB2312");
                StreamReader streamReader 
    = new StreamReader(streamReceive, encoding);
                strResult 
    = streamReader.ReadToEnd();
            }
            
    catch { }
            
    return strResult;
        }
    }
  • 相关阅读:
    XML解析技术研究(一)
    Qt解析XML文件(QXmlStreamReader)
    Qt XML读取写入操作
    QT QXmlStreamWriter用法小结
    QtXML 举例
    libpcap使用
    PCAP研究
    粗谈pcap_next_ex()
    C#扇形的绘制与Hittest交互、图种制作
    ORA-01747: user.table.column, table.column 或列说明无效
  • 原文地址:https://www.cnblogs.com/hantianwei/p/1587559.html
Copyright © 2020-2023  润新知