編程:如何生成XML數(shù)據(jù)_Xml教程
推薦:XML 和XSLT結(jié)合使你的網(wǎng)站設(shè)計渾然一體如果你還未考慮采用一種單一的、緊密結(jié)合的方式進行網(wǎng)頁設(shè)計的話,請看本文。 在網(wǎng)絡(luò)發(fā)展初期,凝聚性(cohesiveness)是由服務(wù)器端實現(xiàn)的,但要牽涉到大量的人工文件管理工作。幸運的是,隨
一,必須弄清楚最終需要的是什么
我們通過asp或其他動態(tài)編程語言,最終需要的是XML格式的數(shù)據(jù),這點和XML數(shù)據(jù)所在的文件載體無關(guān),它可以是實實在在的XML文件,比如:http://www.dw8.cn/common/dw8.xml 。也可以為asp文檔,比如:http://www.cnbruce.com/blog/rss2.asp
他們都是XML數(shù)據(jù)的體現(xiàn),為了實現(xiàn)XML數(shù)據(jù)的動態(tài),所以需要使用到動態(tài)編程語言,比如ASP來實現(xiàn)生成它。
二,如何生成動態(tài)的XML文檔
如果是生成XML文件,介于動態(tài)文檔是ASP格式的,所以必須借助FSO進行XML文件的生成,比如:
<%
xmlfile=server.mappath("test1.xml")
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(xmlfile,True)
MyFile.WriteLine("<?xml version=""1.0"" encoding=""gb2312""?>")
MyFile.WriteLine("<世界>")
MyFile.WriteLine("<你好>hello,world</你好>")
MyFile.WriteLine("</世界>")
MyFile.Close
%>
<a href="test1.xml">查看XML文件內(nèi)容</a>
有關(guān)FSO的操作參看
http://www.cnbruce.com/blog/showlog.aspcat_id=26&log_id=440
如果按照生成動態(tài)的XML數(shù)據(jù)文件來說,則是將MyFile.WriteLine的相關(guān)內(nèi)容在動態(tài)文檔中通過程式的手段來控制XML節(jié)點的名稱和值即可。
三,如何使用動態(tài)文檔生成XML數(shù)據(jù)
那如果不是生成XML文件,直接在動態(tài)文檔上輸出XML數(shù)據(jù)呢,須聲明文件的類型(即Response.ContentType)
<%Response.ContentType = "text/XML"%>
比如直接瀏覽如下的動態(tài)ASP文檔,在瀏覽器中下則顯示為XML數(shù)據(jù)樹
<%
With Response
.ContentType = "text/XML"
.write("<?xml version=""1.0"" encoding=""gb2312""?>")
.write("<世界>")
.write("<你好>hello,world</你好>")
.write("</世界>")
End with
%>
生成的XML文件,其優(yōu)勢就是處理該XML數(shù)據(jù)的文檔可以是靜態(tài)文檔
比如HTML文件通過Javascript、XMLDOM來解析XML,同時也易于數(shù)據(jù)的保留,而動態(tài)文檔上的動態(tài)XML數(shù)據(jù)則沒有這樣有點。不過,在如今動態(tài)文檔無處不在用的時代,似乎這個優(yōu)勢對于一些應(yīng)用來說是無甚影響,甚至來說,動態(tài)文檔的XML數(shù)據(jù)流反而更具優(yōu)勢:更及時、更動態(tài)。
四,生成XML數(shù)據(jù)就是這樣行了嗎?
無論是通過生成具體的XML文件,還是動態(tài)的XML數(shù)據(jù)流,只要按照XML的格式輸出相關(guān)XML節(jié)點和值就可以了,這樣看來XML似乎很簡單。但這并沒有真正接觸到XML的操作。在我們看來,這些XML無非就是一些成對的標(biāo)簽和相關(guān)字符組成的數(shù)據(jù)記錄,毫無生命力可言。然而事實上,通過XMLDOM來操作XML則顯示了XML的絕對優(yōu)勢(這點在生成XML時優(yōu)勢不明顯,卻在添加、刪除XML節(jié)點時體驗無限)。
使用XMLDOM創(chuàng)建XML文檔,可使用Save方法生成XML文檔,使用createElement方法創(chuàng)建XML元素、createNode創(chuàng)建節(jié)點,其實對于XML中的任何標(biāo)簽的創(chuàng)建都可以任意選擇其中的一種,不過一般使用createElement創(chuàng)建頂層(根)元素,使用createNode創(chuàng)建子節(jié)點(元素),當(dāng)然createElement和createNode的使用方法也是不同。
<%
Set objXMLdoc = CreateObject("Microsoft.XMLDOM")
Set world=objXMLdoc.createElement("世界")
objXMLdoc.appendChild(world)
Set hello=objXMLdoc.createNode("element", "你好", "")
hello.Text = "hello,world"
objXMLdoc.documentElement.appendChild(hello)
objXMLdoc.Save Server.MapPath("test2.xml")
Set objXMLdoc = Nothing
%>
CreateObject("Microsoft.XMLDOM") 聲明使用XMLDOM對象
在元素或節(jié)點被建立(createElement、createNode)時,其并沒有加到文件樹中,若要將節(jié)點加到文件樹中,則需要插入,如appendChild。
xmlDocument.createNode(type, name, nameSpaceURI) 表示建立一個指定型態(tài)、名稱,及命名空間的新節(jié)點
type 用來確認(rèn)要被建立的節(jié)點型態(tài),name 是一個字符串來確認(rèn)新節(jié)點的名稱,命名空間的前綴則是選擇性的。nameSpaceURI 是一個定義命名空間URI 的字符串。如果前綴被包含在名稱參數(shù)中,此節(jié)點會在nameSpaceURI 的內(nèi)文中以指定的前綴建立。如果不包含前綴,指定的命名空間會被視為預(yù)設(shè)的命名空間。
objXMLdoc.createNode("element", "你好", "") 等同于 objXMLdoc.createElement("你好")
4,objXMLdoc.documentElement.appendChild(hello)其實就是XML文檔根元素下建立節(jié)點
在本例中等同于 world.appendChild(hello),world為本例中的節(jié)點名,以此類推。
所以可以這樣來寫:
<%
Set objXMLdoc = CreateObject("Microsoft.XMLDOM")
Set world=objXMLdoc.createElement("世界")
objXMLdoc.appendChild(world)
Set hello=objXMLdoc.createElement("你好")
hello.Text = "hello,world"
world.appendChild(hello)
objXMLdoc.Save Server.MapPath("test2.xml")
Set objXMLdoc = Nothing
%>
需要注意的是,通過XMLDOM生成的XML文件都是UTF-8格式的,這對我們所有應(yīng)用程序文件的UTF-8化作了很好的推介。
總結(jié)
生成XML數(shù)據(jù),可以使用FSO,如FSO被禁用,可使用XMLDOM,當(dāng)然還可以直接使用動態(tài)文檔。不過如果融會貫通地掌握XML的操作,XMLDOM操作是必須的。
分享:XML入門指南(1)XML簡介XML可以用來描述數(shù)據(jù),重點是‘數(shù)據(jù)是什么’。 HTML則是用來顯示數(shù)據(jù),重點是‘如何顯示數(shù)據(jù)’。 在學(xué)習(xí)XML之前你應(yīng)該已經(jīng)知道的知識 在你繼續(xù)之前你應(yīng)
- xml創(chuàng)建節(jié)點(根節(jié)點、子節(jié)點)
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說明:
Xml教程-編程:如何生成XML數(shù)據(jù)
。