zoukankan      html  css  js  c++  java
  • 一种简单的生成静态页的方法

    1.准备模板

    newsItem.html

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <h1>$Porschev[0]$</h1>
        <p><strong >时间</strong>:$Porschev[1]$<strong>作者</strong>:$Porschev[2]$</p>
        <p>$Porschev[3]$</p>
    </body>
    </html>

    2.简单的配置文件

    CreateHtml.config

    <?xml version="1.0" encoding="utf-8" ?>
    <web>
      <website key="0" value="title"/>
      <website key="1" value="datetime"/>
      <website key="2" value="author"/>
      <website key="3" value="con"/>
    </web>

    3.操作类

    CreateHtmlBLL.cs

        public class CreateHtmlBLL
        {
            #region##读取配置文件某节点的个数
            ///<summary>
            /// 读取配置文件某节点的个数
            ///</summary>
            ///<param name="path">配置文件的路径</param>
            ///<param name="nodeName">要获取的节点</param>
            ///<returns>返回节点个数</returns>
            private int ReadConfig(string path, string nodeName)
            {
                string absoPath = string.Empty;  //绝对路径
                try
                {
                    absoPath = System.Web.HttpContext.Current.Server.MapPath(path);
                    XmlDocument xd = new XmlDocument();
                    xd.Load(absoPath);
                    XmlNodeList nodeList = xd.SelectNodes(nodeName);  //得到相应节点的集合
                    return nodeList.Count;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            #endregion
            #region##创建文件夹
            ///<summary>
            /// 创建文件夹
            ///</summary>
            ///<param name="path">要创建的路径</param>
            public void CreatFolder(string path)
            {
                string absoPath = string.Empty;  //绝对路径
                try
                {
                    absoPath = System.Web.HttpContext.Current.Server.MapPath(path);
                    if (!Directory.Exists(absoPath))
                    {
                        Directory.CreateDirectory(absoPath);
                    }
                }
                catch (Exception)
                {
    
                    throw;
                }
            }
            #endregion
    
            #region##生成HTML页
            ///<summary>
            /// 生成HTML页
            ///</summary>
            ///<param name="configPath">配置文件的路径</param>
            ///<param name="configNodeName">配置文件节点名</param>
            ///<param name="temPath">模版页路径</param>
            ///<param name="arr">替换数组</param>
            ///<param name="createPath">生成HTML路径</param>
            public void CreateHtml(string configPath, String configNodeName, string temPath, string[] arr, string createPath,string fn)
            {
                string fileName = string.Empty;         //生成文件名
                string absoCrePath = string.Empty;      //生成页绝对路径
                string absoTemPath = string.Empty;      //模版页的绝对中径
                int nodeCount = 0;                      //节点数
    
                try
                {
                    absoCrePath = System.Web.HttpContext.Current.Server.MapPath(createPath);
                    absoTemPath = System.Web.HttpContext.Current.Server.MapPath(temPath);
                    nodeCount = ReadConfig(configPath, configNodeName);
                    FileStream fs = File.Open(absoTemPath, FileMode.Open, FileAccess.Read);  //读取模版页
                    StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("utf-8"));
                    StringBuilder sb = new StringBuilder(sr.ReadToEnd());
                    sr.Close();
                    sr.Dispose();
                    for (int i = 0; i < nodeCount; i++)
                    {
                        sb.Replace("$Porschev[" + i + "]$", arr[i]);
                    }
                    CreatFolder(createPath);
                    fileName = fn + ".html";          //设置文件名(这里可以根据需要变化命名)
                    FileStream cfs = File.Create(absoCrePath + "/" + fileName);
                    StreamWriter sw = new StreamWriter(cfs, Encoding.GetEncoding("utf-8"));
                    sw.Write(sb.ToString());
                    sw.Flush();
                    sw.Close();
                    sw.Dispose();
                }
                catch (Exception)
                {
    
                    throw;
                }
            }
            #endregion
        }

    4.生成调用

            public void CreateHtml(string tiltle,string datetime,string author,string con,string fileName)
            {
                try
                {
                    string[] arr = new string[4];
                    arr[0] = tiltle;
                    arr[1] = datetime;
                    arr[2] = author;
                    arr[3] = con;
                    CreateHtmlBLL chb = new CreateHtmlBLL();
                    chb.CreateHtml("CreateHtml.config", "web/website", "Template/newsItem.html", arr, "news",fileName);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
  • 相关阅读:
    网页简单布局之结构与表现原则(HTML/CSS)
    浅谈搜索引擎SEO(HTML/CSS)
    Vue小案例(一)
    vue2.0中的计算属性
    Vue.js双向绑定原理
    Vue实例对象的数据选项(火柴)
    基于Vue的WebApp项目开发(六)
    基于Vue的WebApp项目开发(五)
    基于Vue的WebApp项目开发(四)
    基于Vue的WebApp项目开发(三)
  • 原文地址:https://www.cnblogs.com/xyangs/p/3097023.html
Copyright © 2011-2022 走看看