C#读取,修改并保存html文件——实例

在C#中对网页中的的信息进行修改并保存。

    写了一个简单的操作例子:

            Stream myStream = new FileStream("RealTimeViedo1.html", FileMode.Open);
            Encoding encode = System.Text.Encoding.GetEncoding("GB2312");
            StreamReader myStreamReader = new StreamReader(myStream, encode);
            string strhtml = myStreamReader.ReadToEnd();
            string stroutput = strhtml.Replace("&*itemId*&", "要替换的内容");

            myStream.Seek(0, SeekOrigin.Begin);
            myStream.SetLength(0);


            StreamWriter sw = new StreamWriter(myStream, encode);
            sw.Write(stroutput);
            sw.Flush();
            sw.Close();
            myStream.Close();

    主要思路:是通过读取一个html文件,将其保存成string类型的字符串,然后找到字符串中要替换的位置并进行替换操作,将替换后的内容要写入到文件中,并进行保存。这里要解释一下Flush(),官方文档描述:Flush()方法将所有信息从基础缓冲区移动到其目标或清除缓冲区,或者同时执行这两种操作。

另外,下边在网页中找到一个具体的操作例子。

 string strbianjiren = UserManager.Instance.CurrentUserName;
            string strfenlei = "";
            string strwenhao = txtFileCode.Text.Trim();//文号
            string strshijian = DateTime.Now.ToString("yyyy-MM-dd");
            int InfoType_ID = int.Parse(ddlInfoType.SelectedValue.ToString());//得到分类ID
            SqlConnection con = AppBase.GetDbConnection();
            SqlCommand cd = con.CreateCommand();


            string listDBInfoTypeSql = "select * from Info.REF_INFOTYPE where InfoType_ID=@InfoType_ID";
            cd.CommandText = listDBInfoTypeSql;
            cd.Parameters.AddWithValue("@InfoType_ID", InfoType_ID);
            SqlDataReader reader = cd.ExecuteReader();
            if (reader.Read())
            {
                strfenlei = (string)reader["InfoType_Name"];
            }
            string strguanjianzi = txtKeyWord.Text;
            string strzhaiyao = txtSummary.Text;
            string strBiaoTi = txtTitle.Text;
            string strNeiRong = content1.Value;
            //string temp = HttpContext.Current.Server.MapPath("a.htm");//读取文件
            string selectCommand = " select * from [INFO].REF_INFO_TEMPLATE where InfoTemplate_Code=2";
            SearchBuilder sb = new SearchBuilder(selectCommand, " InfoTemplate_ID asc ");
            DataTable dt = DbHelper.GetDataTable(AppBase.DbDefault.Connection, sb);
            string temp = dt.Rows[0][3].ToString();
            Encoding code = Encoding.GetEncoding("gb2312"); //声明文件编码
            //StreamReader sr = null;//读取流对象
            StreamWriter sw = null;//写入流对象
            string str = temp;


            Random random = new Random(Guid.NewGuid().GetHashCode());//随机函数
            int indexRandom = random.Next(100, 999);


            htmlfilename = DateTime.Now.ToString("yyyyMMddHHmmss") + indexRandom + ".html";
            createfilename = DateTime.Now.ToString("yyyyMM");
            // 替换内容 
            // 这时,模板文件已经读入到名称为str的变量中了 
            str = str.Replace("&*biaoti*&", strBiaoTi); //模板页中的替换
            str = str.Replace("&*neirong*&", strNeiRong); //模板页中的替换
            str = str.Replace("&*bianjiren*&", strbianjiren);
            str = str.Replace("&*shijian*&", strshijian);
            str = str.Replace("&*fenlei*&", strfenlei);
            str = str.Replace("&*guanjianzi*&", strguanjianzi);
            str = str.Replace("&*zhaiyao*&", strzhaiyao);
            str = str.Replace("&*wenhao*&", strwenhao);
            str = str.Replace("&*NewsId*&", strclicks);
            // 写文件 
            //实际开发中,这里除了写在实际文件里外,还需要把数据写到数据库中并且多保存一个文件的物理路径以便编辑和删除信息
            try
            {
                //创建文件夹
                string FilePath = Server.MapPath("~/htmlmessage/") + createfilename;


                if (!Directory.Exists(FilePath))
                {
                    Directory.CreateDirectory(FilePath);
                }


                sw = new StreamWriter(FilePath + "\\" + htmlfilename, false, code);
                sw.Write(str);
                sw.Flush();


            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.Write(ex.Message);
                HttpContext.Current.Response.End();
            }
            finally
            {
                sw.Close();

            }

    实例来自:http://bbs.csdn.net/topics/360152196


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值