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;
                }
            }
        }
    }
}
 

转载于:https://my.oschina.net/sunrui9521/blog/13499

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值