熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

網絡編程:如何生成XML數據

2013-11-13 10:19:46  來源: .NET編程 

  必須弄清楚最終需要的是什麼

  我們通過asp或其他動態編程語言最終需要的是XML格式的數據這點和XML數據所在的文件載體無關它可以是實實在在的XML文件比如 也可以為asp文檔比如

  他們都是XML數據的體現為了實現XML數據的動態所以需要使用到動態編程語言比如ASP來實現生成它

  如何生成動態的XML文檔

  如果是生成XML文件介於動態文檔是ASP格式的所以必須借助FSO進行XML文件的生成比如

  <%

  xmlfile=servermappath(testxml)

  Set fso = CreateObject(ScriptingFileSystemObject)

  Set MyFile = fsoCreateTextFile(xmlfileTrue)

  MyFileWriteLine(<?xml version= encoding=gb?>)

  MyFileWriteLine(<世界>)

  MyFileWriteLine(<你好>helloworld</你好>)

  MyFileWriteLine(</世界>)

  MyFileClose

  %>

  <a >查看XML文件內容</a>

  有關FSO的操作參看

  cat_id=&log_id=

  如果按照生成動態的XML數據文件來說則是將MyFileWriteLine的相關內容在動態文檔中通過程式的手段來控制XML節點的名稱和值即可

  如何使用動態文檔生成XML數據

  那如果不是生成XML文件直接在動態文檔上輸出XML數據呢須聲明文件的類型(即ResponseContentType)

  <%ResponseContentType = text/XML%>

  比如直接浏覽如下的動態ASP文檔在浏覽器中下則顯示為XML數據樹

  <%

  With Response

  ContentType = text/XML

  write(<?xml version= encoding=gb?>)

  write(<世界>)

  write(<你好>helloworld</你好>)

  write(</世界>)

  End with

  %>

  生成的XML文件其優勢就是處理該XML數據的文檔可以是靜態文檔比如HTML文件通過JavascriptXMLDOM來解析XML同時也易於數據的保留而動態文檔上的動態XML數據則沒有這樣有點不過在如今動態文檔無處不在用的時代似乎這個優勢對於一些應用來說是無甚影響甚至來說動態文檔的XML數據流反而更具優勢更及時更動態

   

  生成XML數據就是這樣行了嗎?

  無論是通過生成具體的XML文件還是動態的XML數據流只要按照XML的格式輸出相關XML節點和值就可以了這樣看來XML似乎很簡單但這並沒有真正接觸到XML的操作在我們看來這些XML無非就是一些成對的標簽和相關字符組成的數據記錄毫無生命力可言然而事實上通過XMLDOM來操作XML則顯示了XML的絕對優勢(這點在生成XML時優勢不明顯卻在添加刪除XML節點時體驗無限)

  使用XMLDOM創建XML文檔可使用Save方法生成XML文檔使用createElement方法創建XML元素createNode創建節點其實對於XML中的任何標簽的創建都可以任意選擇其中的一種不過一般使用createElement創建頂層(根)元素使用createNode創建子節點(元素)當然createElement和createNode的使用方法也是不同

  <%

  Set objXMLdoc = CreateObject(MicrosoftXMLDOM)

  Set world=objXMLdoccreateElement(世界)

  objXMLdocappendChild(world)

  Set hello=objXMLdoccreateNode(element 你好 )

  helloText = helloworld

  objXMLdocdocumentElementappendChild(hello)

  objXMLdocSave ServerMapPath(testxml)

  Set objXMLdoc = Nothing

  %>

  


    CreateObject(MicrosoftXMLDOM) 聲明使用XMLDOM對象
    在元素或節點被建立(createElementcreateNode)時其並沒有加到文件樹中若要將節點加到文件樹中則需要插入如appendChild
    xmlDocumentcreateNode(type name nameSpaceURI) 表示建立一個指定型態名稱及命名空間的新節點

      type 用來確認要被建立的節點型態name 是一個字符串來確認新節點的名稱命名空間的前綴則是選擇性的nameSpaceURI 是一個定義命名空間URI 的字符串如果前綴被包含在名稱參數中此節點會在nameSpaceURI 的內文中以指定的前綴建立如果不包含前綴指定的命名空間會被視為預設的命名空間

      objXMLdoccreateNode(element 你好 ) 等同於 objXMLdoccreateElement(你好)


    objXMLdocdocumentElementappendChild(hello)其實就是XML文檔根元素下建立節點在本例中等同於 worldappendChild(hello)world為本例中的節點名以此類推

  所以可以這樣來寫

  <%

  Set objXMLdoc = CreateObject(MicrosoftXMLDOM)

  Set world=objXMLdoccreateElement(世界)

  objXMLdocappendChild(world)

  Set hello=objXMLdoccreateElement(你好)

  helloText = helloworld

  worldappendChild(hello)

  objXMLdocSave ServerMapPath(testxml)

  Set objXMLdoc = Nothing

  %>

  需要注意的是通過XMLDOM生成的XML文件都是UTF格式的這對我們所有應用程序文件的UTF化作了很好的推介

  總結

  生成XML數據可以使用FSO如FSO被禁用可使用XMLDOM當然還可以直接使用動態文檔不過如果融會貫通地掌握XML的操作XMLDOM操作是必須的


From:http://tw.wingwit.com/Article/program/net/201311/13259.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.