国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > XML > 正文

如何生成XML數(shù)據(jù)

2024-09-05 20:53:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  一、必須弄清楚最終需要的是什么

  我們通過(guò)asp或其他動(dòng)態(tài)編程語(yǔ)言,最終需要的是XML格式的數(shù)據(jù),這點(diǎn)和XML數(shù)據(jù)所在的文件載體無(wú)關(guān),它可以是實(shí)實(shí)在在的XML文件,比如:http://www.dw8.cn/common/dw8.xml 。也可以為asp文檔,比如:http://www.cnbruce.com/blog/rss2.asp

  他們都是XML數(shù)據(jù)的體現(xiàn),為了實(shí)現(xiàn)XML數(shù)據(jù)的動(dòng)態(tài),所以需要使用到動(dòng)態(tài)編程語(yǔ)言,比如ASP來(lái)實(shí)現(xiàn)生成它。

  二、如何生成動(dòng)態(tài)的XML文檔

  如果是生成XML文件,介于動(dòng)態(tài)文檔是ASP格式的,所以必須借助FSO進(jìn)行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

  如果按照生成動(dòng)態(tài)的XML數(shù)據(jù)文件來(lái)說(shuō),則是將MyFile.WriteLine的相關(guān)內(nèi)容在動(dòng)態(tài)文檔中通過(guò)程式的手段來(lái)控制XML節(jié)點(diǎn)的名稱和值即可。

  三、如何使用動(dòng)態(tài)文檔生成XML數(shù)據(jù)

  那如果不是生成XML文件,直接在動(dòng)態(tài)文檔上輸出XML數(shù)據(jù)呢,須聲明文件的類型(即Response.ContentType)

<%Response.ContentType = "text/XML"%>

  比如直接瀏覽如下的動(dòng)態(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)勢(shì)就是處理該XML數(shù)據(jù)的文檔可以是靜態(tài)文檔,比如HTML文件通過(guò)Javascript、XMLDOM來(lái)解析XML,同時(shí)也易于數(shù)據(jù)的保留,而動(dòng)態(tài)文檔上的動(dòng)態(tài)XML數(shù)據(jù)則沒(méi)有這樣有點(diǎn)。不過(guò),在如今動(dòng)態(tài)文檔無(wú)處不在用的時(shí)代,似乎這個(gè)優(yōu)勢(shì)對(duì)于一些應(yīng)用來(lái)說(shuō)是無(wú)甚影響,甚至來(lái)說(shuō),動(dòng)態(tài)文檔的XML數(shù)據(jù)流反而更具優(yōu)勢(shì):更及時(shí)、更動(dòng)態(tài)。

  四、生成XML數(shù)據(jù)就是這樣行了嗎?

  無(wú)論是通過(guò)生成具體的XML文件,還是動(dòng)態(tài)的XML數(shù)據(jù)流,只要按照XML的格式輸出相關(guān)XML節(jié)點(diǎn)和值就可以了,這樣看來(lái)XML似乎很簡(jiǎn)單。但這并沒(méi)有真正接觸到XML的操作。在我們看來(lái),這些XML無(wú)非就是一些成對(duì)的標(biāo)簽和相關(guān)字符組成的數(shù)據(jù)記錄,毫無(wú)生命力可言。然而事實(shí)上,通過(guò)XMLDOM來(lái)操作XML則顯示了XML的絕對(duì)優(yōu)勢(shì)(這點(diǎn)在生成XML時(shí)優(yōu)勢(shì)不明顯,卻在添加、刪除XML節(jié)點(diǎn)時(shí)體驗(yàn)無(wú)限)。

  使用XMLDOM創(chuàng)建XML文檔,可使用Save方法生成XML文檔,使用createElement方法創(chuàng)建XML元素、createNode創(chuàng)建節(jié)點(diǎn),其實(shí)對(duì)于XML中的任何標(biāo)簽的創(chuàng)建都可以任意選擇其中的一種,不過(guò)一般使用createElement創(chuàng)建頂層(根)元素,使用createNode創(chuàng)建子節(jié)點(diǎn)(元素),當(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對(duì)象

  在元素或節(jié)點(diǎn)被建立(createElement、createNode)時(shí),其并沒(méi)有加到文件樹中,若要將節(jié)點(diǎn)加到文件樹中,則需要插入,如appendChild。

  xmlDocument.createNode(type, name, nameSpaceURI) 表示建立一個(gè)指定型態(tài)、名稱,及命名空間的新節(jié)點(diǎn)

  type 用來(lái)確認(rèn)要被建立的節(jié)點(diǎn)型態(tài),name 是一個(gè)字符串來(lái)確認(rèn)新節(jié)點(diǎn)的名稱,命名空間的前綴則是選擇性的。nameSpaceURI 是一個(gè)定義命名空間URI 的字符串。如果前綴被包含在名稱參數(shù)中,此節(jié)點(diǎn)會(huì)在nameSpaceURI 的內(nèi)文中以指定的前綴建立。如果不包含前綴,指定的命名空間會(huì)被視為預(yù)設(shè)的命名空間。

  objXMLdoc.createNode("element", "你好", "") 等同于 objXMLdoc.createElement("你好") 4,objXMLdoc.documentElement.appendChild(hello)其實(shí)就是XML文檔根元素下建立節(jié)點(diǎn),在本例中等同于 world.appendChild(hello),world為本例中的節(jié)點(diǎn)名,以此類推。

  所以可以這樣來(lái)寫:

<%
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
%>

  需要注意的是,通過(guò)XMLDOM生成的XML文件都是UTF-8格式的,這對(duì)我們所有應(yīng)用程序文件的UTF-8化作了很好的推介。

  總結(jié)

  生成XML數(shù)據(jù),可以使用FSO,如FSO被禁用,可使用XMLDOM,當(dāng)然還可以直接使用動(dòng)態(tài)文檔。不過(guò)如果融會(huì)貫通地掌握XML的操作,XMLDOM操作是必須的。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 察哈| 彩票| 石景山区| 丰原市| 增城市| 甘德县| 瓮安县| 工布江达县| 上思县| 福清市| 蓬莱市| 永兴县| 汉川市| 秭归县| 全州县| 宁德市| 出国| 罗平县| 麻城市| 台北县| 衡南县| 新晃| 泰宁县| 师宗县| 二手房| 化州市| 易门县| 大新县| 合江县| 武陟县| 崇信县| 石河子市| 龙游县| 阿拉善盟| 徐水县| 无极县| 新巴尔虎右旗| 隆尧县| 隆尧县| 苗栗市| 台江县|