有些朋友的主機不支援FSO,但又要生成HTML檔,是不是有些為難呢?
而現今支援ASP的主機一般都採用微軟OS,而這些OS一般都是win2k server及以上系統,就算不安裝XML PARSER同樣會支援XML parser解析
而XMLDOM也有個.SAVE方法.透過這樣我們就可以來在不FSO的主機上產生HTML檔了.
首先,說明一點.注意HTML與XML程式碼的規範化.
HTML
<input name=t1>
這是沒有問題的,標準的寫法應該是<input name="t1">
但是如果是xml裡
<input name=t1>肯定是錯誤的,因為XML的節點屬性值要求在引號之內.
同樣<input name="t1">也是錯誤的,因為XML需要封閉的結點,你可以寫成
<input name="t1"></input>,但<input name="t1"></Input>也是錯誤的,因為XML區分大小寫對於input 這個XML節點,它的TEXT值為空,從而可以寫成<input name="t1" />
這樣就符合XML規範了.
再例如html裡的<br>在XML裡要寫成<br></br>或<br/>
html裡的image
<image src="test.gif">
在XML裡要寫<image src="test.gif" />
還有特殊字符",>,<,',&,節點不允許交叉等等,先說這麼多了,至於XML文檔的規範化不是本文重點,請參閱相關資料.
如何用fso 產生一個html檔這裡也就不說了.但是如果用FSO,你的意原是要生成這樣的HTML檔
<html>
<head>
<title>test</title>
<body>
<p><img src="test.gif">
</body>
</html>
這裡少寫了</HEAD>,對於HTML來說,瀏覽器可以容忍.
但是要產生具有XML規範的文檔,就必須是
<html>
<head>
<title>test</title>
</head>
<body>
<p><img src="test.gif" /></p>
</body>
</html>
如何將這一段XML格式化的文件存入伺服器呢?
dim xmlString
xmlString="<html>" & chr(10) & "<head>" & chr(10) & "<title>test</title>" & chr(10) & "</head>" & chr(10 ) & "<body>" & chr(10) & "<p><img src="test.gif" /></p>" & chr(10) & "</body>" & chr(10) & "</html>"
dim xmlDoc
set xmlDoc = server.createObject("Msxml2.DOMDocument")
xmlDoc.loadXml(xmlString)
xmlDoc.save(server.mappath("test.htm"))
set xmlDoc=nothing
這裡用到了xmlDOM.loadXml() 方法,它載入一段XML DOCUMENT到物件中.
為什麼要大家將準備產生的HTML寫成XML規範的原因也在於此,因為LOADXML()方法只支援符合XML規範的文字字串
當然需要有對目錄的寫權限