ASP.NET生成靜態頁面的方法
阿新 • • 發佈:2019-01-03
基本思路是:使用DW之類的工具生成一個靜態頁面模板。讀取該模板檔案,然後對裡面的特殊標記使用真實的資料替換掉,並生成一個HTML檔案。
實現程式碼
using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO; namespace htmlWeb { public class CreateHtm { private string fileName; public String FileName { get { return fileName; } } /**//// <summary> /// 讀取配置檔案 /// </summary> /// <param name="dirName">配置檔案的路徑名</param> /// <param name="tag">配置檔案中的標籤名</param> /// <returns>_replaceStr的長度</returns> private int GetConfig(String dirName, String tag) { XmlDataDocument config = new XmlDataDocument(); try { config.Load(dirName); } catch (Exception ex) { throw ex; } XmlNodeList list = config.GetElementsByTagName(tag); return list.Count; } /**//// <summary> ///生成HTML檔案 /// </summary> /// <param name="configFileName">配置檔案的路徑名</param> /// <param name="configTag">配置檔案中的標籤名</param> /// <param name="dir">生成檔案所在的資料夾的路徑</param> /// <param name="templateFile">模板檔案的的路徑</param> /// <param name="param">要替換的字串陣列</param> /// <returns>生成的檔名</returns> public void MakeHtml(String configFileName, String configTag, String dir, String templateFile, String[] param) { fileName = null; int count = GetConfig(configFileName, configTag); String[] _replaceStr = new String[count]; try { FileStream tFile = File.Open(templateFile, FileMode.Open, FileAccess.Read); StreamReader reader = new StreamReader(tFile, Encoding.GetEncoding("gb2312")); StringBuilder sb = new StringBuilder(reader.ReadToEnd()); reader.Close(); for (int i = 0; i < count; i++) { sb.Replace("$repalce[" + i + "]$", param[i]); } fileName = DateTime.Now.ToFileTime().ToString() + ".htm"; FileStream rFile = File.Create(dir+"/" + fileName); StreamWriter writer = new StreamWriter(rFile, Encoding.GetEncoding("gb2312")); writer.Write(sb.ToString()); writer.Flush(); writer.Close(); } catch (Exception ex) { throw ex; } } public void DeleteHtml(String dirName) { File.Delete(dirName); } } }
方法說明
(1)、private int GetConfig(String dirName, String tag)
此方法用於讀取配置檔案(見後),主要是獲得要替換的字串的個數,在本類同體現為一個字串陣列
(2)、public void MakeHtml(String configFileName, String configTag, String dir, String templateFile, String[] param)
此方法用於生成靜態頁面