?? 根據html頁面模板動態生成html頁面(c#類).txt
字號:
192 }
193 }
194 /**//// <summary>
195 /// 開始進行aspxTohtml轉換
196 /// </summary>
197 /// <returns>返回值為成功創建后的文件名稱</returns>
198 /// <remarks>在調用此方法之前必需確定已調用setTemplateFileparameter 和
setAspxFileparameter方法進行相應的付值操作</remarks>
199 public string StartConvert()
200 {
201 if(this._templateFileparameter.Length==this._aspxFileparameter.Length)
202 {
203 return writeFile();
204 }
205 else{
206 return null;
207 }
208 }
209 /**//// <summary>
210 /// 開始進行aspxTohtml轉換
211 /// </summary>
212 /// <param name="htmlparam">html模板頁中的所有參數數組</param>
213 /// <param name="aspxparam">aspx頁面中要代替html模板頁中參數值數組
</param>
214 /// <returns>返回值為成功創建后的文件名稱</returns>
215 public string StartConvert(string[] htmlparam,string[] aspxparam)
216 {
217 //先調用setTemplateFileparameter 和setAspxFileparameter方法,進行付值
操作
218 setTemplateFileparameter(htmlparam);
219 setAspxFileparameter(aspxparam);
220 //
221 string fn=this.StartConvert();
222 //
223 _convertedFilename=fn;
224 //
225 return fn;
226 }
227
228 /**//// <summary>
229 /// 用時間加隨機數生成一個文件名
230 /// </summary>
231 /// <returns></returns>
232 private string getfilename()
233 {
234 //用時間加隨機數生成一個文件名
235 System.Threading.Thread.Sleep(50);
236 string yearStr = System.DateTime.Now.Year.ToString();
237 string monthStr = string.Format("{0:0#}",System.DateTime.Now.Month);
238 string dayStr = string.Format("{0:0#}",System.DateTime.Now.Day);
239 string hourStr = string.Format("{0:0#}",System.DateTime.Now.Hour);
240 string minuteStr = string.Format("{0:0#}",System.DateTime.Now.Minute);
241 string secondStr = string.Format("{0:0#}",System.DateTime.Now.Second);
242 string millisecondStr = string.Format("{0:000#}",System.DateTime.Now.Millisecond);
243 System.Random rd = new System.Random();
244 return yearStr + monthStr + dayStr + hourStr + minuteStr + secondStr +
millisecondStr + string.Format("{0:0000#}",rd.Next(100))+".html";
245 //return DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
246 }
247 /**//// <summary>
248 /// 進行轉換處理
249 /// </summary>
250 /// <returns>返回以時間命名的文件名</returns>
251 private string writeFile()
252 {
253
254 // 讀取模板文件
255 string temp = HttpContext.Current.Server.MapPath(this.TemplateFilePath);
256 StreamReader sr=null;
257 string str="";
258 try
259 {
260 sr = new StreamReader(temp, this.TemplateHtmlCode);
261 str = sr.ReadToEnd(); // 讀取文件
262 }
263 catch(Exception ex)
264 {
265 //HttpContext.Current.Response.Write(exp.Message);
266 //HttpContext.Current.Response.End();
267 WriteErrFile(ex);
268 }
269 finally
270 {
271 sr.Close();
272 }
273 // 替換內容
274 // 這時,模板文件已經讀入到名稱為str的變量中了
275 for(int i=0;i<this.TemplateParamCount;i++)
276 {
277 str =str.Replace(this._templateFileparameter[i],this._aspxFileparameter[i]);
278 }
279
280 return savefile(str);
281 }
282
283 /**//// <summary>
284 ///
285 /// </summary>
286 /// <param name="str"></param>
287 /// <returns></returns>
288
289 private string savefile(string str)
290 {
291 // 寫文件
292 StreamWriter sw=null;
293 try
294 {
295
296 string path = HttpContext.Current.Server.MapPath(this.HtmlFilePath);
297 //html文件名稱
298 string htmlfilename=getfilename();
299 sw = new StreamWriter(path + htmlfilename , false, this.Code);
300 sw.Write(str);
301 sw.Flush();
302 return htmlfilename;
303 }
304 catch(Exception ex)
305 {
306 WriteErrFile(ex);
307 }
308 finally
309 {
310 sw.Close();
311 }
312 return "";
313 }
314
315 /**//// <summary>
316 /// 傳入URL返回網頁的html代碼
317 /// </summary>
318 /// <param name="Url">URL</param>
319 /// <returns></returns>
320 public string getUrltoHtml(string Url)
321 {
322 try
323 {
324 System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
325 System.Net.WebResponse wResp =wReq.GetResponse();
326 System.IO.Stream respStream = wResp.GetResponseStream();
327 System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
328 return savefile(reader.ReadToEnd());
329
330 }
331 catch(System.Exception ex)
332 {
333 WriteErrFile(ex);
334 }
335 return "";
336 }
337 #endregion
338
339
340 構造#region 構造
341
342 public AspxToHtml()
343 {
344 //
345 // TODO: 在此處添加構造函數邏輯
346 //
347 }
348
349 private void settemplateParamCount(int templateParamCount)
350 {
351 if (templateParamCount>0)
352 this.TemplateParamCount=templateParamCount;
353 }
354 /**//// <summary>
355 /// 提供欲代替的參數個數
356 /// </summary>
357 /// <param name="templateParamCount"></param>
358 public AspxToHtml(int templateParamCount)
359 {
360 settemplateParamCount(templateParamCount);
361
362 }
363 /**//// <summary>
364 ///
365 /// </summary>
366 /// <param name="templateParamCount">html模板頁中的參數個數</param>
367 /// <param name="htmlFilePath">生成的html文件所存放的文件夾路徑</param>
368 /// <param name="templateFilePath">html模板頁路徑</param>
369 public AspxToHtml(int templateParamCount,string htmlFilePath,string
templateFilePath)
370 {
371 settemplateParamCount(templateParamCount);
372 this.HtmlFilePath = htmlFilePath;
373 this.TemplateFilePath = templateFilePath;
374
375 }
376 #endregion
377
378 #region
379
380 /**//// <summary>
381 /// 把錯誤寫入文件方法#region 把錯誤寫入文件方法
382 /// </summary>
383 /// <param name="ee"></param>
384 private void WriteErrFile(Exception ee)
385 {
386
387 FileStream fs1 = new
FileStream(HttpContext.Current.Server.MapPath(ErrLogPath), System.IO.FileMode.Append);
388 StreamWriter sw1 = new StreamWriter(fs1);
389 sw1.WriteLine("**************************************************");
390 sw1.WriteLine("錯誤日期:" + System.DateTime.Now);
391 sw1.WriteLine("錯誤描述:" + ee.Message);
392 sw1.WriteLine("錯誤名稱:" + ee.Source);
393 sw1.WriteLine("詳細:" + ee.ToString());
394 sw1.WriteLine("*************************************************");
395 sw1.Close();
396 }
397 #endregion
398 }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -