C 建立xml檔案

2021-04-28 11:18:06 字數 3567 閱讀 8559

引言

隨著xml的普及以及在動態web應用程式中大量應用,如何通過.net建立,刪除,修改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檔案。

關於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檔案將以那種流檔案形式輸出。

使用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**:

首先我們要注意是否有匯入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)方法來建立最底層即沒有巢狀其他元素的元素。

在瀏覽器視窗中輸出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">

void page_load(object sender, eventargs e)

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

xmltextwriter物件簡介 xmltextwriter物件包含了很多可用於在建立xml檔案時新增元素和屬性到xml檔案裡的方法,比較重要的有 writestartdocument 建立xml檔案首先就需要用到這個方法,它是在建立xml檔案的第一行 用來指定該檔案是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 剛好...