全面解析C 建立XML檔案的具體操作

2021-09-30 07:44:50 字數 4198 閱讀 1797

隨著xml的普及以及在動態web應用程式中大量應用,如何通過.netc#建立,刪除,修改xml檔案變的也來也重要了。那麼如何c#建立xml檔案呢?具體的操作又是如何呢?讓我們開始具體的講解:

乙個簡單的概念是,xml檔案跟大的文字檔案並沒有什麼區別,同時它是先於.net出現,很多asp的開發者,當他需要程式輸出xml檔案的時候,通常都是用response.write()方法輸出為xml文件。

使用response.write()的方式來輸出xml文件,並不是一種那麼好的方法,首先,我們用這種方法輸出字元以組成xml檔案的時候,我們會很擔心輸出的這些字元是不是符合xml規範,不符合xml規範的xml文件將不能得到真確完整的顯示,如:﹤,﹥,&"",和'這些符號,當它們在xml檔案裡的出現的時候,我們必須手工查詢這些不合規範的字元;再次,當我們需要輸出的是乙個包含很多名字空間,屬性和元素的xml檔案的時候,使用response.write()方法所必須的**將會變得冗長以及可讀性差。

幸運的是,.net framework提供了乙個特別為建立xml檔案使用的類-system.xml.xmltextwriter,使用這個類來建立xml檔案,你並不需要擔心輸出是否符合xml規範的問題,同時**將會變得非常簡潔。在這篇文章中,我們將深入的講述如何使用xmltextwriter類來建立xml檔案。

c#建立xml檔案之xmltextwriter物件簡介:

xmltextwriter物件包含了很多可用於在建立xml檔案時新增元素和屬性到xml檔案裡的方法,比較重要的有:

◆writestartdocument()-建立xml檔案首先就需要用到這個方法,它是在建立xml檔案的第一行**,用來指定該檔案是xml檔案以及設定它的編碼型別;

◆writestartelement(string)-這個方法的作用是在xml檔案中建立新元素,你可以通過string引數設定元素的名稱(當然了,你還可以使用optional關鍵字指定乙個可選的引數);

◆writeelementstring(name, text_value)-如果你需要建立乙個除了字元,什麼也沒有的(如不巢狀元素)的元素,你可以使用該方法;

◆writeendelement()-對應writestartelement(string)方法,作為乙個元素的結尾;

◆writeenddocument()-xml檔案建立完成後使用該方法結束;

◆close()-關閉所有的文字流,把建立的xml檔案輸出到指定位置。

使用xmltextwriter物件建立xml檔案,需要在類構造器中指定檔案的型別,而且編碼型別必須是system.text.encoding,如:system.text.encoding.ascii, system.text.encoding.unicode及system.text.encoding.utf8,在xmltextwriter類構造器指定為何種型別,在輸出xml檔案將以那種流檔案形式輸出。

c#建立xml檔案之使用xmltextwriter物件建立乙個簡單的xml檔案

﹤userinfo﹥  

﹤browserinfo﹥   

﹤urlreferrer﹥url referrer info﹤/urlreferrer﹥  

﹤useragent﹥user agent referrer info﹤/useragent﹥  

﹤userlanguages﹥languages info﹤/userlanguages﹥  

﹤/browserinfo﹥  

﹤visitinfo timevisited="date/time the page was visited"

﹥  ﹤ip﹥visitor's ip address﹤/ip﹥  

﹤rawurl﹥raw url requested﹤/rawurl﹥  

﹤/visitinfo﹥  

﹤/userinfo﹥ 

選用這個有這種結構的xml檔案為輸出物件,是為了可以在這裡使用所有先前講過的方法,方便闡述。

如下便是建立該xml檔案所需的asp.net**:

xmltextwriter writer=   

new

),null);  

writer.formatting = formatting.indented; //縮排格式

writer.indentation =4; 

首先我們要注意是否有匯入system.xml and system.text命名空間,然後我們在page_load事件中建立乙個xmltextwriter物件例項,並且指定建立的xml檔案儲存為userinfo.xml檔案和它的編碼型別為utf8(a translation of 16-bit unicode encoding into 8-bits),然後使用writestartelement(elementname)方法來建立巢狀了其他元素的元素,並以writeendelement()作為結束,此外,我們使用writeelementstring(elementname, textvalue)方法來建立最底層即沒有巢狀其他元素的元素。

c#建立xml檔案之在瀏覽器視窗中輸出xml檔案:

先前的例子示範了如何使用xmltextwriter物件建立xml檔案以及把它儲存為乙個檔案,這個檔案可能是你所需要的,但是有時候,我們需要把建立的xml檔案在瀏覽器上顯示出來,這個時候,我們可以使用上例**建立userinfo.xml檔案,然後開啟它,再使用response.write()把它輸出,但是這種方法並不是很好。

下面列出了上例修改後的部分**,修改過的**將一些粗體顯示:

﹤@ page contenttype="text/xml"

%﹥  

﹤%@ import namespace="system.xml"

%﹥  

﹤%@ import namespace="system.text"

%﹥  

﹤script language="c#"

runat="server"

voidpage_load(objectsender, eventargs e)  

注意,儘管你訪問的是asp.net web頁面,但是你檢視該例項所看到的僅僅是xml文件,這個文件跟先前建立的xml檔案是一樣的,所不同的是,先前是儲存為乙個xml檔案userinfo.xml。

c#建立xml檔案等操作的總結:

本文示範了在.net framework中如何使用system.xml.xmltextwriter類來建立xml檔案,xmltextwriter物件可以建立乙個xml檔案,並把它儲存到指定位置,也可以直接以指定的流形式顯示在瀏覽器上,在很多編碼工作中,使用xmltextwriter物件構建基於xml的程式會有很多的優勢,其中主要有可以使**更加簡潔,更具可讀性,同時不用擔心輸出的xml檔案是否符合規範

writer.writestartdocument();  

writer.writestartelement("person"

);  

writer.writestartattribute("id"

,null);  

writer.writestring("004"

);  

writer.writeendattribute();  

writer.writestartelement("name"

);  

writer.writestring("testwritername"

);  

writer.writeendelement();  

writer.writestartelement("number"

);  

writer.writestring("88888"

);  

writer.writeendelement();  

writer.writestartelement("city"

);  

writer.writestring("testwritercity"

);  

writer.writeendelement();  

writer.flush();  

writer.close();  

c#建立xml檔案的相關概念以及具體的操作演示就向你介紹到這裡,希望那個對你了解和學習c#建立xml檔案有所幫助。

建立xml檔案 解析xml檔案

import codecs import xml.dom.minidom doc xml.dom.minidom.document print doc root doc.createelement booklist print u 新增的xml標籤為 root.tagname root.setatt...

Python建立XML檔案,C 解析XML檔案

最近在做一些 移植工作,為了測試正確性,要拿同樣的輸入資料測試,於是打算使用xml來儲存資料,c 進行解析。簡單做個記錄。資料來源使用python生成xml 目標是生成下面的樣子,直接看 吧,python這個xml庫用起來比較簡單,看個例子就會了。c 解析xml qt qdomdocument 剛好...

C 解析XML檔案

內容提要 1.解析xml檔案有哪些方法?各有什麼優缺點?2.如何用xpath解析xml文件的要點。先來看看解析xml檔案的方法都有哪些吧,本段文字來自網路,可以幫助大家對這個問題有個概要的了解。在程式中訪問並操作xml檔案一般有兩種模型 流模型和dom 文件物件模型 流模型中有兩種變體 推 模型和 ...