闲来没事,瞎弄了个动态生成静态HTML的东东,一般比如新闻等的查看页面,都会用到。
方法虽笨,但容易理解!希望可以给没有做过类似情况的人员一点思路。
步骤1:建立一个HTML模板,如下图所示,其中{$Title}这些是动态要替换掉的。
当然,我这个只是一个救命,样式布局什么的都没有加。
步骤2:写转换的代码。(代码中没有做任何的错误保护及异常处理)
代码
protected void Page_Load(object sender, EventArgs e)
{
//新闻的ID
string id = "89516549846";
//新闻的标题
string title = "测试生成的静态页";
//新闻的发布时间
string date = "2010-10-28";
//新闻的内容
string content = @" 中国石油昨晚发布三季报,按国际会计准则前三季度归属于本公司股东的净利润为1000.3亿元人民币,基本每股收益0.55元人民币,比上年同期增长23%。此外第三季度净利达到347亿元,同比增长12.5%,也创下了两年来季度业绩最佳值。<br/>
<br/>
接近2009年全年利润<br/>
<br/>
这也是今年以来中石油净利润首度突破1000亿元,已经接近2009年其全年净利润1031亿元。受到油气价格和产量的提升,上半年中石油实现净利润652.11亿元,同比增29.6%若以每月平均30天计算,前9个月中石油创下净利润1000亿元,即相当于每日净赚3.7亿元。作为上游业务比较大的石油公司,原油价格和产量对公司业绩影响最大。<br/>
<br/>
前三季度,公司共生产原油6.4亿桶,同比上升1.3%,生产可销售天然气16845亿立方英尺,同比增长10.5%,实现国内原油生产稳中有升、天然气产量继续保持两位数增长。前三季度,共加工原油6.57亿桶,同比上升8.3%。进入6月份以来,国际市场油价持续在每桶70美元-80美元之间高位波动。<br/>
<br/>
国际油价上涨所致<br/>
<br/>
对于上述业绩,中国石油表示,总体经营业绩好于预期。中国石油股份有限公司有关人士对记者表示,取得上述业绩确实受到国际油价上涨影响。
<br/>
26日国内成品油价格再度上调,中信证券分析人士表示,油价上调将利于改善中石油的炼油成本。此外受到认为弱势美元和充裕流动性影响以及美国能源部和OPEC等权威机构上调原油需求与其基本面支撑叠加,预计油价还有上升趋势,并可能在四季度达到90美元乃至100美元每桶的全年高点,也将利好于中石油。预计中石油全年的EPS(每股收益)可达0.91元。<br/>
<br/>
分析<br/>
<br/>
爆炸事故对业绩影响不大<br/>
<br/>
7月16日,中石油大连新港保税区油库发生原油泄漏和爆炸,并导致该油库输送至大连石化公司的新大线停止运行,直接影响了大连石化的生产。但该条管线在7月16日事发三天后即7月19日22时45分即恢复运行,并以每天4.5万吨的输量向大连石化供油。<br/>
<br/>
公开资料显示大连石化年炼油能力超过2000万吨,是目前国内最大的炼厂之一。但其占中石油整体炼油能力比重并不大。截至2009年中石油的炼油年加工能力达到1.49亿吨。<br/>
<br/>
此前中石油相关负责人也对记者表示,大连事件对公司的整体运营影响不大。<br/>
<br/>
10月24日,曾经发生爆炸的103号油罐再次发生火灾。但对于此次事故,中石油方面则没有披露相关信息。<br/>";
//以下代码功能就是将HTML模板的内容替换,生成新的静态页面
string templete=string.Empty;
StreamReader sr = new StreamReader(Server.MapPath("~/HtmlTemplete/news.htm"),System.Text.Encoding.Default);
templete = sr.ReadToEnd();
templete = templete.Replace("{$Title}", title).Replace("{$Date}", date).Replace("{$Content}", content);
string filePath = Server.MapPath("~/news/2010/10/28/89516549846.html");
string directory=System.IO.Path.GetDirectoryName(filePath);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
StreamWriter sw = new StreamWriter(filePath, false, System.Text.Encoding.Default);
sw.Write(templete);
//使用完成后,要释放关闭,否则Response.Redirect("news/2010/10/28/89516549846.html");的时候,会报“文件正在使用的错误”
sw.Flush();
sw.Close();
Response.Redirect("news/2010/10/28/89516549846.html");
}
{
//新闻的ID
string id = "89516549846";
//新闻的标题
string title = "测试生成的静态页";
//新闻的发布时间
string date = "2010-10-28";
//新闻的内容
string content = @" 中国石油昨晚发布三季报,按国际会计准则前三季度归属于本公司股东的净利润为1000.3亿元人民币,基本每股收益0.55元人民币,比上年同期增长23%。此外第三季度净利达到347亿元,同比增长12.5%,也创下了两年来季度业绩最佳值。<br/>
<br/>
接近2009年全年利润<br/>
<br/>
这也是今年以来中石油净利润首度突破1000亿元,已经接近2009年其全年净利润1031亿元。受到油气价格和产量的提升,上半年中石油实现净利润652.11亿元,同比增29.6%若以每月平均30天计算,前9个月中石油创下净利润1000亿元,即相当于每日净赚3.7亿元。作为上游业务比较大的石油公司,原油价格和产量对公司业绩影响最大。<br/>
<br/>
前三季度,公司共生产原油6.4亿桶,同比上升1.3%,生产可销售天然气16845亿立方英尺,同比增长10.5%,实现国内原油生产稳中有升、天然气产量继续保持两位数增长。前三季度,共加工原油6.57亿桶,同比上升8.3%。进入6月份以来,国际市场油价持续在每桶70美元-80美元之间高位波动。<br/>
<br/>
国际油价上涨所致<br/>
<br/>
对于上述业绩,中国石油表示,总体经营业绩好于预期。中国石油股份有限公司有关人士对记者表示,取得上述业绩确实受到国际油价上涨影响。
<br/>
26日国内成品油价格再度上调,中信证券分析人士表示,油价上调将利于改善中石油的炼油成本。此外受到认为弱势美元和充裕流动性影响以及美国能源部和OPEC等权威机构上调原油需求与其基本面支撑叠加,预计油价还有上升趋势,并可能在四季度达到90美元乃至100美元每桶的全年高点,也将利好于中石油。预计中石油全年的EPS(每股收益)可达0.91元。<br/>
<br/>
分析<br/>
<br/>
爆炸事故对业绩影响不大<br/>
<br/>
7月16日,中石油大连新港保税区油库发生原油泄漏和爆炸,并导致该油库输送至大连石化公司的新大线停止运行,直接影响了大连石化的生产。但该条管线在7月16日事发三天后即7月19日22时45分即恢复运行,并以每天4.5万吨的输量向大连石化供油。<br/>
<br/>
公开资料显示大连石化年炼油能力超过2000万吨,是目前国内最大的炼厂之一。但其占中石油整体炼油能力比重并不大。截至2009年中石油的炼油年加工能力达到1.49亿吨。<br/>
<br/>
此前中石油相关负责人也对记者表示,大连事件对公司的整体运营影响不大。<br/>
<br/>
10月24日,曾经发生爆炸的103号油罐再次发生火灾。但对于此次事故,中石油方面则没有披露相关信息。<br/>";
//以下代码功能就是将HTML模板的内容替换,生成新的静态页面
string templete=string.Empty;
StreamReader sr = new StreamReader(Server.MapPath("~/HtmlTemplete/news.htm"),System.Text.Encoding.Default);
templete = sr.ReadToEnd();
templete = templete.Replace("{$Title}", title).Replace("{$Date}", date).Replace("{$Content}", content);
string filePath = Server.MapPath("~/news/2010/10/28/89516549846.html");
string directory=System.IO.Path.GetDirectoryName(filePath);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
StreamWriter sw = new StreamWriter(filePath, false, System.Text.Encoding.Default);
sw.Write(templete);
//使用完成后,要释放关闭,否则Response.Redirect("news/2010/10/28/89516549846.html");的时候,会报“文件正在使用的错误”
sw.Flush();
sw.Close();
Response.Redirect("news/2010/10/28/89516549846.html");
}
步骤3:预览生成的页面。效果如下。
完成了,简单吧~~