asp.net 解析html 文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
/*
 * 生成静态
 * */

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

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //思路是替换掉模板中的特征字符  
            string mbPath = Server.MapPath("tem/index.htm");
            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();
            }
            //=================查找中间包含的字符=====================================================
            //  Regex.Replace(str, @"(?s)\{rui:artlist.*?\{/rui:artlist\}", "");
            string pattern = @"(?is){rui:artlist[^{]+{/rui:artlist}";
            Regex reg = new Regex(pattern, RegexOptions.Compiled);
            Match m = reg.Match(str);
            if (m.Success)
            {
                string content = m.Value;
                str = str.Replace(content, "这个是替换的标签");
                //  m = reg.Match(str);
            }
        //    str = Regex.Replace(str, @"(?is){rui:artlist[^{]+{/rui:artlist}", "这个是替换后的内容");
            //===================end 查找中间包含的字符==================================================
            //根据时间自动命名,扩展名也可以自行修改  
            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".html";
            str = str.Replace("{rui:title}", this.TextBox1.Text);//替换Title  
            str = str.Replace("{rui:content}", this.TextBox2.Text);//替换content  
            string newfilename = DateTime.Now.ToString("yyyyMM");
            //生成静态文件  
            try
            {
               
                CreateFile(newfilename);
                sw = new StreamWriter(Server.MapPath("htm/"+newfilename+"/") + fileName, false, code);
                sw.Write(str);
                sw.Flush();

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

        }
        ///


        /// 创建文件夹
        ///
        /// 文件名称
        public void CreateFile(string FilePathName)
        {
            string[] strPath= FilePathName.Split('/');
            CreateFolder(FilePathName.Replace("/" + strPath[strPath.Length-1].ToString(),"")); //创建文件
           
        }
        
        public void CreateFolder(string FolderPathName)
        {
            if (FolderPathName.Trim().Length > 0)
            {
                try
                {
                    string CreatePath = System.Web.HttpContext.Current.Server.MapPath

                    ("htm/" + FolderPathName).ToString();
                    if (!Directory.Exists(CreatePath))
                    {
                        Directory.CreateDirectory(CreatePath);
                    }
                }
                catch
                {
                    throw;
                }
            }
        }
    }
}
 

你可能感兴趣的:(asp.net 解析html 文件)