用server.Execute(path As String,writer As Sysetem.IO.TextWriter) 方法,这种方法很简单,向服务器放松动态网页请求,获取页面的客户端html代码,然后把内容写进文件里.这种方法写起来比较简单:
1
Dim swHtml As StringWriter = New StringWriter()
2
Server.Execute("http://localhost/newsSzhome/manage/newstemplate.aspx, swHtml)
3
Dim strContent As String = swHtml.ToString()
4
5
Dim filepath As String = "d//news//001.html"
6
If Not (System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(filepath))) Then
7
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filepath))
8
End If
9
Dim sw As StreamWriter = New StreamWriter(filepath, False, System.Text.Encoding.Default)
10
Try
11
sw.Write(strContent )
12
Catch ex As Exception
13
Throw ex
14
Finally
15
sw.Flush()
16
sw.Close()
17
End Try
这种方法是必须读网页地址,缺点显而易见:速度慢。另外如果请求的动态页面有验证控件的话,返回的html页面却无法进行数据验证。如果在同一个项目里的程序用这个还是很好的,但是如果是要把生成程序跟网页程序分开(如写成webservice)的话,用这个方法就相当与去打开一个外网网页,效率肯定会大打折扣(而且我在webservice上用这方法根本运行不了,程序出异常!具体原因没有去探索,估计应该是权限的问题).
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

第2种方法:
这个方法跟第1种方法相似(也是需要读取网页内容),用System.Net.WebRequest.Create(path As String)方法建里一个需要读取的网页的webRequest,再获得它的WebResponse,再以流的形式写入文件.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

第3种,就是最常用也最实用的字符替代方法String.Replace(),从文件读取模版,替换模版中的参数后输出文件,这种方法的生成速度上比第一种要快许多,而且模版内容可以用工具任意编辑
主要代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
