當前位置:成語大全網 - 新華字典 - C#來創建和讀取XML文檔

C#來創建和讀取XML文檔

 擴展標記語言XML(eXtensible Markup Language) 是由W C組織制定的 做為用於替代HTML語言的壹種新型的標記語言 XML內部有著很多基本標準 XML就是通過與這些相關標準地結合 應用於科學計算 電子出版 多媒體制作和電子商務的 C#作為壹種新型的程序語言 是 Net框架的壹個重要組成部分 他和XML的關系頗深 本文就從壹個方面來探討壹下這二者的關系 即 看用C#如何來創建和讀取XML文檔

 壹.本文程序設計和運行的軟件環境

 (壹)微軟公司視窗 服務器版

 (二) Net FrameWork SDK Beta

 二.C#創建XML文檔

 在本文中我們來介紹壹下用C#創建XML文檔的二種方法 這二種方法各有千秋 第壹種創建起來更靈活 第二種創建起來更方便

 (壹)C#創建XML文檔的第壹種方法

 這壹種方法是按照按照XML的結構壹步壹步的構建XML文檔 C#構建XML文檔通過 Net FrameWork SDK中的命名空間 System Xml 中封裝的各種類來實現的 下面就按照壹個XML典型文檔結構來介紹壹下

 ( )首先要創建壹個空的XML文檔

 在命名空間 System Xml 中有壹個類 XmlDocument C#通過這個類來描述XML文檔 下面是用C#創建壹個XML文檔

 

 

 xmldoc = new System Xml XmlDocument ( ) ;?

 ( )在XML的文檔的最頭部加入XML的聲明段落

 利用 XmlDocument 類中的 CreateNode 方法可以創建壹個指定類型的XML節點 CreateNode 方法的調用方法總***有三種 在本文中使用的是其壹般的方法 具體語法如下

 XmlDocument CreateNode Method ( XmlNodeType String String )

 然後在利用 XmlDocument 類中的 AppendChild 方法在XML文檔中加入此節點 用C#在XML文檔中加入聲明段落實現的語句如下

 

 

 xmlnode = xmldoc CreateNode ( XmlNodeType XmlDeclaration ) ;xmldoc AppendChild ( xmlnode ) ;

 ( )為XML文檔加入元素(element)

 加入數據內容是通過元素 在 XmlDocument 類中提供了二個方法

  CreateElement 和 CreateTextNode 其中第壹個方法是在XML中創建壹個元素 另外壹個方法是為創建的元素指定文本值 下面是為上面創建的XML文檔加入壹個根元素

 

 

 xmlelem = xmldoc CreateElement ( ROOT ) ;xmltext = xmldoc CreateTextNode ( Root Text ) ;

 註釋 其中 xmlelem 是創建的 XmlElement 對象 xmltext 是 XmlText 對象有了創建壹個XML元素的例子 就可以根據XML文檔中數據的不同的結構來創建其他的數據了

 (二)C#創建XML文檔的第壹種方法的源程序代碼(NO cs)

 

 

 using System ;using System Xml ;class MainClass{XmlDocument xmldoc ;XmlNode xmlnode ;XmlElement xmlelem ;XmlElement xmlelem ;XmlText xmltext ;static void Main ( string [ ] args ){MainClass app = new MainClass ( ) ;}public MainClass ( ){xmldoc = new XmlDocument ( ) ;//加入XML的聲明段落xmlnode = xmldoc CreateNode ( XmlNodeType XmlDeclaration ) ;xmldoc AppendChild ( xmlnode ) ;//加入壹個根元素xmlelem = xmldoc CreateElement ( ROOT ) ;xmltext = xmldoc CreateTextNode ( Root Text ) ;xmlelem AppendChild ( xmltext ) ;xmldoc AppendChild ( xmlelem ) ;//加入另外壹個元素xmlelem = xmldoc CreateElement ( SampleElement ) ;xmlelem = xmldoc CreateElement ( SampleElement ) ;xmltext = xmldoc CreateTextNode ( The text of the sample element ) ;xmlelem AppendChild ( xmltext ) ;xmldoc ChildNodes Item( ) AppendChild ( xmlelem ) ;//保存創建好的XML文檔try{xmldoc Save ( c:\\data xml ) ; }catch ( Exception e ){//顯示錯誤信息Console WriteLine ( e Message ) ;}Console ReadLine ( ) ;}}?

 (三)C#創建XML文檔的第二種方法

 在介紹完第壹種方法以後 我想每壹個讀者都感覺到用C#創建XML文檔是壹項比較煩雜的工作了 因為不僅要了解創建的知識 還要了解文檔的結構 這樣創建的過程就是壹步壹步的了 下面就來介紹壹種比較容易的創建方法 這種創建方法是直接定義XML文檔 然後把他保存到文件中就可以了

 ( )創建壹個XML文檔

 這壹點和第壹種方法壹樣 在這裏就不介紹了

 ( )通過 XmlDocument 類中的 LoadXml 方法 直接在文檔中加入想要加入的XML數據 當然妳加入的XML應該符合XML的語法 不然產生的文件也沒有什麽意義了 下面是加入XML的具體代碼

 

 

 doc LoadXml ( + + Ma Jin Hu + + Feng Huang Street + Chu Zhou City + ANHUI + + + Wang Tian + + Lang Ya Street + He Fei City + ANHUI + + + Zou Wen Biao + + Sai Di Street + Bei Jin City + Bei Jin + + ) ;?

 ( )把保存XML文檔到文件中

 保存XML文檔是通過 XmlDocument 類中的 Save

 方法來實現的 具體如下

 

 

 doc Save ( data xml ) ;?

 (四)C#創建XML文檔的第二種方法的源程序代碼(NO cs)

 

 

 using System ;using System IO ;using System Xml;public class Sample{public static void Main ( ){//創建壹個XmlDocument對象XmlDocument doc = new XmlDocument ( ) ;doc LoadXml ( + + Ma Jin Hu + + Feng Huang Street + Chu Zhou City + ANHUI + + + Wang Tian + + Lang Ya Street + He Fei City + ANHUI + + + Zou Wen Biao + + Sai Di Street + Bei Jin City + Bei Jin + + ) ;//保存這個文檔到文件中doc Save ( data xml ) ;}}?

 用C#創建XML文檔的方法其實有很多 在這裏只是選取了二種比較典型的方法加以介紹 但無論那壹種方法 C#在創建XML的時候都需要用到 Net FrameWork SDK 所以了解並掌握這個類庫中的內容對於C#編程是十分必要的 在下面我們將來介紹壹下用C#讀取XML中的數據 通過這妳會發現 C#又是利用這個類庫實現這個功能的

 三.C#讀取XML文件

 本節將用C#來讀取本文中用第二種方法創建的XML文件 編譯NO cs後 執行將產生 data xml 文件 其中 data xml 文件的數據結構如下

 

 

  Ma Jin Hu Feng Huang Street Chu Zhou City ANHUI Wang Tian Lang Ya Street He Fei City ANHUI Zou Wen Biao Sai Di Street Bei Jin City Bei Jin?

 在下面的內容中 我們利用C#讀取此文件 並用ListView組件按照數據結構給顯示出來

 要正確讀取XML數據 首先要了解XML的結構 根據上面的XML文件 可以知道此XML包含三個數據 下面就來看如何讀取這三條數據

 ( )裝入XML文件 形成數據流

 通過創建壹個 XmlDocument 對象 然後利用 load 方法 可以把XML文件裝入 具體如下

 

 

 XmlDocument doc = new XmlDocument ( ) ;// 裝入指定的XML文檔doc Load ( C:\\data xml ) ;?

 ( )讀取XML文件 並顯示出來

 讀取XML是通過創建 XmlNodeReader 對象來實現的 XmlNodeReader 對象主要是用來可以讀取XML的節點數據 在本文的程序中使用到了壹些 XmlNodeReader 的屬性 譬如 NodeType 屬性 用來判斷讀取得節點是什麽類型 Value 是節點的值 下面是讀取XML文件並顯示在ListView中的實現代碼 其中listview 是已經創建ListView組件

 

 

 while ( reader Read ( ) ) {//判斷當前讀取得節點類型switch ( reader NodeType ){case XmlNodeType Element :s = reader Name ;break ;case XmlNodeType Text :if ( s Equals ( Name ) )myItem = Listview Items Add ( reader Value ) ;elsemyItem SubItems Add ( reader Value ) ;break ;} }?

 四 C#讀取XML的文件的源程序代碼(read cs)

 在了解了上面的內容以後

 可以得到用C#讀取指定XML文件的完整代碼 具體如下

 

 

 using System ;using System Drawing ;using System Collections ;using System ComponentModel ;using System Windows Forms ;using System Data ;using System Xml ;public class Form : Form{private Button button ;private ListView Listview ;private System ComponentModel Container ponents = null ;public Form ( ){//初始化窗體中的各個組件InitializeComponent ( ) ;}//清除程序中使用過的資源protected override void Dispose ( bool disposing ){if ( disposing ){if ( ponents != null ) {ponents Dispose ( ) ;}}base Dispose ( disposing ) ;}private void InitializeComponent ( ){button = new Button ( ) ;Listview = new ListView ( ) ;SuspendLayout ( ) ;button Anchor = ( ( AnchorStyles Bottom | AnchorStyles Left ) | AnchorStyles Right ) ;button Location = new Point ( ) ;button Name = button ;button Size = new Size ( ) ;button TabIndex = ;button Text = 讀取XML文檔 ;button Click += new System EventHandler ( button _Click ) ;Listview Anchor = ( ( ( AnchorStyles Top | AnchorStyles Bottom ) | AnchorStyles Left ) | AnchorStyles Right ) ;Listview GridLines = true ;Listview Location = new Point ( ) ;Listview Name = Listview ;Listview Size = new Size ( ) ;Listview TabIndex = ;Listview View = View Details ;this AutoScaleBaseSize = new Size ( ) ;this ClientSize = new Size ( ) ;this Controls Add ( Listview );this Controls Add ( button );this Name = Form ;this StartPosition = FormStartPosition CenterScreen ;this Text = 用C#來讀取XML文檔 ;this ResumeLayout ( false ) ;}static void Main ( ) {Application Run ( new Form ( ) ) ;}private void button _Click ( object sender System EventArgs e ){ListViewItem myItem = new ListViewItem ( ) ;// 構建listview組件Listview Columns Clear ( ) ; Listview Items Clear ( ) ;Listview Columns Add ( Name HorizontalAlignment Left ) ; Listview Columns Add ( Zip HorizontalAlignment Left ) ; Listview Columns Add ( Address HorizontalAlignment Left ) ; Listview Columns Add ( City HorizontalAlignment Left ) ; Listview Columns Add ( State HorizontalAlignment Left ) ; XmlNodeReader reader = null ;try{string s = ;XmlDocument doc = new XmlDocument ( ) ;// 裝入指定的XML文檔doc Load ( C:\\data xml ) ;// 設定XmlNodeReader對象來打開XML文件reader = new XmlNodeReader ( doc ) ;// 讀取XML文件中的數據 並顯示出來while ( reader Read ( ) ) {//判斷當前讀取得節點類型switch ( reader NodeType ){case XmlNodeType Element :s = reader Name ;break ;case XmlNodeType Text :if ( s Equals ( Name ) )myItem = Listview Items Add ( reader Value ) ;elsemyItem SubItems Add ( reader Value ) ;break ;} }}finally{//清除打開的數據流if ( reader != null )reader Close ( ) ;}}}

 五.總結

lishixinzhi/Article/program/net/201311/12929