




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第10章章 XML在在C#中的典型應用中的典型應用XML文檔對象模型(文檔對象模型(DOM)是)是XML數(shù)據(jù)訪問的核心對數(shù)據(jù)訪問的核心對象。本章通過簡要介紹象。本章通過簡要介紹C#中的中的DOM對象,學習如何在對象,學習如何在C#中中實現(xiàn)代碼與實現(xiàn)代碼與XML文件的交互,其中包括文件的交互,其中包括C#文件的獲取、節(jié)文件的獲取、節(jié)點的編輯等,旨在加深對點的編輯等,旨在加深對XML文件的認識。文件的認識。10.1 C#中的中的XML DOM在學習一門開發(fā)技術(shù)前,首先應從理論上了解這門技在學習一門開發(fā)技術(shù)前,首先應從理論上了解這門技術(shù),然后再通過實踐,深入了解其實際應用,這才是學習技術(shù),然后再通
2、過實踐,深入了解其實際應用,這才是學習技術(shù)的好方法。本節(jié)將先從術(shù)的好方法。本節(jié)將先從C#中的理論知識入手,讓讀者首中的理論知識入手,讓讀者首先了解先了解C#中的中的DOM。10.1.1 XML DOM的操作對象的操作對象XmlDocumentXmlDocument被稱為被稱為XML對象,是對象,是C#處理處理XML文件文件的核心對象。使用此對象,可以加載的核心對象。使用此對象,可以加載XML文件,也可以操作文件,也可以操作XML文件中的所有節(jié)點,使用文件中的所有節(jié)點,使用XmlDocument對象提供的方對象提供的方法,可輕松實現(xiàn)對法,可輕松實現(xiàn)對XML文件的內(nèi)容進行增、刪、改、查詢等文件的內(nèi)
3、容進行增、刪、改、查詢等各種操作。各種操作。使用使用XmlDocument讀取的讀取的XML文件,會暫時保存在內(nèi)文件,會暫時保存在內(nèi)存中,這大大提高了存中,這大大提高了XML文件的讀取速度。所以文件的讀取速度。所以XmlDocument對象的主要作用就是實現(xiàn)對象的主要作用就是實現(xiàn)XML文件的快速編文件的快速編輯。輯。10.1.2 使用使用XML文件分析文件分析XmlDocument中的對象中的對象本節(jié)通過解剖一個本節(jié)通過解剖一個XML文件,逐步分析文件,逐步分析XmlDocument中有中有關(guān)關(guān)XML文件的對象。下面是一個常見的文件的對象。下面是一個常見的XML文件。文件。 整個整個XML文件
4、:文件:XmlDocument對象用來讀取整個對象用來讀取整個XML文檔,表示從根節(jié)點開始的所有數(shù)據(jù)。文檔,表示從根節(jié)點開始的所有數(shù)據(jù)。 任意節(jié)點:節(jié)點是任意節(jié)點:節(jié)點是XML文件的基本對象。在文件的基本對象。在C#中,中,XmlNode表示節(jié)點對象。表示節(jié)點對象。 元素:元素一般沒有子節(jié)點,只有內(nèi)容。在元素:元素一般沒有子節(jié)點,只有內(nèi)容。在C#中,中,用用XmlElement表示元素。表示元素。 屬性:屬性是區(qū)分節(jié)點的標識。如屬性:屬性是區(qū)分節(jié)點的標識。如“id”就是就是User節(jié)節(jié)點的屬性。在點的屬性。在C#中,中,XmlAttribute表示屬性對象。表示屬性對象。 文本:文本用來表示元
5、素的值,如文本:文本用來表示元素的值,如“北京北京”就是就是元素的文本。在元素的文本。在C#中,中,XmlText表示文本對象。表示文本對象。10.1.3 使用使用DOM對象獲取對象獲取XML文件文件XmlDocument對象可以加載文件,也可以編輯文件,由于對象可以加載文件,也可以編輯文件,由于其作用于內(nèi)存,具有高速讀取的特性,所以很多時候使用此對象其作用于內(nèi)存,具有高速讀取的特性,所以很多時候使用此對象來獲取服務器上的來獲取服務器上的XML文件。實例的演示步驟如下。文件。實例的演示步驟如下。(1)創(chuàng)建一個網(wǎng)站,命名為)創(chuàng)建一個網(wǎng)站,命名為“XmlDomReadSample”。(2)設計頁面
6、的布局如圖所示。)設計頁面的布局如圖所示。(3)雙擊)雙擊“讀取讀取XML文件文件”按鈕打開代碼視圖,在其按鈕打開代碼視圖,在其Click事事件中,編寫讀取件中,編寫讀取XML文件的代碼如下所示。文件的代碼如下所示。(4)XmlDocument對象存在于專門的對象存在于專門的XML命名空間中,命名空間中,在視圖的最上方一定要添加對此命名空間的引用。引用代碼如下在視圖的最上方一定要添加對此命名空間的引用。引用代碼如下所示。所示。 using System.Xml;(5)在網(wǎng)站根目錄下,添加一個)在網(wǎng)站根目錄下,添加一個XML文件文件Students.xml,內(nèi)容如下所示。內(nèi)容如下所示。(6)按)
7、按F5鍵運行程序,單擊鍵運行程序,單擊“讀取讀取XML文件文件”按鈕,則按鈕,則運行效果如圖所示。運行效果如圖所示。10.1.4 使用使用DOM對象獲取對象獲取XML文件中的指定節(jié)點文件中的指定節(jié)點XML文件中,可通過屬性來標識節(jié)點的唯一性,本例就利用屬性文件中,可通過屬性來標識節(jié)點的唯一性,本例就利用屬性這個特點,學習如何獲取指定的某個節(jié)點。實例的演示步驟如下。這個特點,學習如何獲取指定的某個節(jié)點。實例的演示步驟如下。(1)在網(wǎng)站根目錄下,添加一個新的)在網(wǎng)站根目錄下,添加一個新的Web窗體,命名為窗體,命名為“getNode”。(2)設計頁面的布局如圖所示。)設計頁面的布局如圖所示。(3)
8、雙擊)雙擊“搜索搜索”按鈕打開代碼視圖,在其按鈕打開代碼視圖,在其Click事件中事件中。(4)在網(wǎng)站根目錄下,添加名為)在網(wǎng)站根目錄下,添加名為“StudentsID.xml”的文件的文件。(5)按)按F5鍵運行程序,在上面的文本框內(nèi)輸入要搜索的節(jié)點鍵運行程序,在上面的文本框內(nèi)輸入要搜索的節(jié)點id為為“1”,單擊,單擊“搜索搜索”按鈕,程序運行效果如圖所示。按鈕,程序運行效果如圖所示。10.1.5 使用使用DOM對象改變對象改變XML文件的數(shù)據(jù)順序文件的數(shù)據(jù)順序除了可以使用除了可以使用DOM來讀取來讀取XML文件,還可以對文件,還可以對XML文件的節(jié)點進文件的節(jié)點進行增、刪、改、排列順序。本
9、節(jié)將通過一個簡單的排序?qū)嵗?,學習如何行增、刪、改、排列順序。本節(jié)將通過一個簡單的排序?qū)嵗?,學習如何操作操作XML文件中的某個節(jié)點。實例的演示步驟如下。文件中的某個節(jié)點。實例的演示步驟如下。(1)在網(wǎng)站根目錄下,添加一個新的)在網(wǎng)站根目錄下,添加一個新的Web窗體,命名為窗體,命名為“EditNode”。(2)設計編輯節(jié)點的界面如圖所示。其中搜索按鈕可參考上一節(jié))設計編輯節(jié)點的界面如圖所示。其中搜索按鈕可參考上一節(jié)例子的代碼。例子的代碼。(3)雙擊)雙擊“調(diào)整順序調(diào)整順序”按鈕打開代碼視圖,編寫修改節(jié)點的按鈕打開代碼視圖,編寫修改節(jié)點的代碼如下所示。代碼如下所示。(4)按)按F5鍵運行程序,單擊
10、鍵運行程序,單擊“調(diào)整順序調(diào)整順序”按鈕,查看第一個按鈕,查看第一個節(jié)點是否發(fā)生了變化。運行效果如圖所示。節(jié)點是否發(fā)生了變化。運行效果如圖所示。10.2 XML文件讀取器文件讀取器XmlReader使用使用XML DOM可以讀取可以讀取XML文件,但其速度比不上文件,但其速度比不上XmlReader對象。本節(jié)將介紹如何使用對象。本節(jié)將介紹如何使用XmlReader對象,對象,實現(xiàn)實現(xiàn)XML文件的讀取。文件的讀取。10.2.1 XmlReader的作用的作用XmlReader用來讀取用來讀取XML文件,與大部分讀取器一樣,文件,與大部分讀取器一樣,其支持只進式讀取,即其支持只進式讀取,即Xml
11、Reader是只讀類型,不允許編輯是只讀類型,不允許編輯XML文件。文件。XmlReader還有一個特點就是不緩存被讀取的數(shù)還有一個特點就是不緩存被讀取的數(shù)據(jù),這也是其與據(jù),這也是其與XmlDocument對象的一大區(qū)別。對象的一大區(qū)別。XmlReader可以讀取整個可以讀取整個XML文件,也可以從指定的節(jié)文件,也可以從指定的節(jié)點開始,只讀取點開始,只讀取XML文件中的某一部分。使用文件中的某一部分。使用XmlReader讀讀取取XML,主要實現(xiàn)以下功能。,主要實現(xiàn)以下功能。 可檢查可檢查XML節(jié)點的名稱,為某一部分數(shù)據(jù)的讀取提供節(jié)點的名稱,為某一部分數(shù)據(jù)的讀取提供便利。便利。 可檢查可檢查X
12、ML文檔的格式,有利于頁面的安全。文檔的格式,有利于頁面的安全。 可驗證可驗證XML文檔的架構(gòu),對不符合驗證的文檔的架構(gòu),對不符合驗證的XML文件,文件,給出警告信息。給出警告信息。 可根據(jù)條件,選擇指定的數(shù)據(jù),提高讀取的速度??筛鶕?jù)條件,選擇指定的數(shù)據(jù),提高讀取的速度。10.2.2 對對XML的驗證的驗證XmlReader不僅可以讀取文件,還能對不僅可以讀取文件,還能對XML文件中的節(jié)點文件中的節(jié)點和數(shù)據(jù)進行驗證。其主要驗證功能通過和數(shù)據(jù)進行驗證。其主要驗證功能通過XmlReaderSettings實實現(xiàn),下面列舉了幾種常用的檢查屬性?,F(xiàn),下面列舉了幾種常用的檢查屬性。 CheckChara
13、cters:是否允許讀取器檢查字符。:是否允許讀取器檢查字符。 ConformanceLevel:設置檢查:設置檢查XML文檔數(shù)據(jù)格式的級文檔數(shù)據(jù)格式的級別。別。 IgnoreComments:是否忽略注釋文本。:是否忽略注釋文本。 IgnoreWhitespace:是否忽略文檔中的空白處。:是否忽略文檔中的空白處。 IgnoreProcessingInstructions:是否忽略處理指令。:是否忽略處理指令。10.2.3 使用使用XmlReader讀取讀取XML文件的一部分文件的一部分本節(jié)將通過一個實例,演示如何在本節(jié)將通過一個實例,演示如何在C#中使用中使用XmlReader讀取服務讀取
14、服務器上的器上的XML文件,從根目錄開始讀取,僅讀取一個節(jié)點。演示步驟如下文件,從根目錄開始讀取,僅讀取一個節(jié)點。演示步驟如下所示。所示。(1)打開)打開Visual Studio,新建一個網(wǎng)站,命名為,新建一個網(wǎng)站,命名為“ReadXML”。(2)在網(wǎng)站根目錄下,添加一個)在網(wǎng)站根目錄下,添加一個XML文件文件Teacher.xml。(3)在)在Default.aspx中,設計頁面的布局如中,設計頁面的布局如左左圖所示。圖所示。(4)雙擊)雙擊“讀取讀取”按鈕,切換到代碼視圖按鈕,切換到代碼視圖。(5)添加對)添加對XML命名空間的引用,代碼如下所示。命名空間的引用,代碼如下所示。 usin
15、g System.Xml;(6)按)按F5鍵運行程序,讀取鍵運行程序,讀取XML文件后的效果如文件后的效果如下下圖所示。圖所示。10.2.4 使用使用XmlTextReader讀取整個讀取整個XML文件文件XmlTextReader類是對類是對XmlReader類的擴展,也是提供一個類的擴展,也是提供一個XML文件文件的只進讀取器。本例通過一個實例,演示如何使用的只進讀取器。本例通過一個實例,演示如何使用XmlTextReader獲取整獲取整個個XML文件,演示步驟如下所示。文件,演示步驟如下所示。(1)打開)打開Visual Studio,新建一個網(wǎng)站,命名為,新建一個網(wǎng)站,命名為textR
16、eaderXml。(2)在網(wǎng)站根目錄下,添加一個)在網(wǎng)站根目錄下,添加一個Teacher.xml文件,內(nèi)容同上一節(jié)。文件,內(nèi)容同上一節(jié)。(3)打開)打開Default.aspx文件,設計窗體的默認布局,如文件,設計窗體的默認布局,如下下圖所示圖所示。(4)雙擊)雙擊“讀取讀取”按鈕,打開代碼視圖按鈕,打開代碼視圖。(5)按)按F5鍵運行程序,單擊鍵運行程序,單擊“讀取讀取”按鈕,運行效果如按鈕,運行效果如下下圖所示。圖所示。10.3 XML文件編寫器文件編寫器XmlWriterXML文件編寫器的主要作用就是快速創(chuàng)建文件編寫器的主要作用就是快速創(chuàng)建XML文件,文件,然后在文件中添加內(nèi)容。本節(jié)將介
17、紹然后在文件中添加內(nèi)容。本節(jié)將介紹XML編寫過程中的一些編寫過程中的一些注意事項,并通過實例學習如何使用注意事項,并通過實例學習如何使用XmlWriter編寫編寫XML文文件。件。10.3.1 XmlWriter的作用的作用XmlWriter主要的作用是創(chuàng)建主要的作用是創(chuàng)建XML文件,然后根據(jù)實際文件,然后根據(jù)實際情況,驗證情況,驗證XML文件的內(nèi)容,最后完成文件的內(nèi)容編寫。文件的內(nèi)容,最后完成文件的內(nèi)容編寫。XmlWriter的主要作用如下所示。的主要作用如下所示。 檢查檢查XML文檔中文本、元素和節(jié)點等數(shù)據(jù)的正確性。文檔中文本、元素和節(jié)點等數(shù)據(jù)的正確性。 檢查檢查XML文檔的格式。文檔的格
18、式。 能轉(zhuǎn)換能轉(zhuǎn)換XML的編碼,支持純文本的輸出。的編碼,支持純文本的輸出。 可以合并多個可以合并多個XML文件,然后導出到一個文件中。文件,然后導出到一個文件中。 利用利用XmlWriter提供的方法,可輸出符合規(guī)范的各種提供的方法,可輸出符合規(guī)范的各種XM L數(shù)據(jù)元素。數(shù)據(jù)元素。10.3.2 XmlWriter對對XML文件的驗證文件的驗證為了可以生成一個格式良好的為了可以生成一個格式良好的XML文件,文件,XmlWriter和和XmlReader一樣,可以驗證文件或字符串的格式。在編寫一樣,可以驗證文件或字符串的格式。在編寫器中,使用器中,使用XmlWriterSettings來驗證這些
19、內(nèi)容。來驗證這些內(nèi)容。XmlWriterSettings的主要驗證設置如下所示。的主要驗證設置如下所示。 CheckCharacters:設置是否需要進行字符檢查。:設置是否需要進行字符檢查。 Encoding:設置輸出的:設置輸出的XML流使用的編碼。流使用的編碼。 Indent:輸出文本時,指定元素是否需要縮進。:輸出文本時,指定元素是否需要縮進。 IndentChars:元素如果縮進,使用的縮進符號。:元素如果縮進,使用的縮進符號。 NewLineChars:設施分行時使用的字符。:設施分行時使用的字符。 NewLineOnAttributes:設置屬性是否在新的一行:設置屬性是否在新的
20、一行中創(chuàng)建。中創(chuàng)建。10.3.3 用用XmlWriter創(chuàng)建并編輯創(chuàng)建并編輯XML文件文件了解了編寫器的作用和驗證屬性后,本節(jié)通過一個實際的例子,演了解了編寫器的作用和驗證屬性后,本節(jié)通過一個實際的例子,演示編寫器的應用過程。詳細步驟如下所示。示編寫器的應用過程。詳細步驟如下所示。(1)打開)打開Visual Studio,創(chuàng)建一個網(wǎng)站,命名為,創(chuàng)建一個網(wǎng)站,命名為“xmlWriterSample”。(2)在默認生成的)在默認生成的Default.aspx中,設計頁面的布局如圖所示。中,設計頁面的布局如圖所示。(3)雙擊)雙擊“讀取讀取”按鈕,切換到代碼視圖,在按鈕,切換到代碼視圖,在Page
21、_Load事件中事件中。(4)在)在“讀取讀取”按鈕的按鈕的Click事件中,編寫用事件中,編寫用XmlReader讀取讀取XML文文件的代碼,如下所示。件的代碼,如下所示。(5)按)按F5鍵運行程序,程序運行的效果如圖所示。鍵運行程序,程序運行的效果如圖所示。(6)關(guān)閉運行著的程序,刷新網(wǎng)站根目錄,可以發(fā)現(xiàn)多了)關(guān)閉運行著的程序,刷新網(wǎng)站根目錄,可以發(fā)現(xiàn)多了一個一個student.xml文件,其內(nèi)容如下所示。文件,其內(nèi)容如下所示。10.4 XML與與DataSet的交互的交互XML的一大優(yōu)勢在于簡便的數(shù)據(jù)表示能力,而在的一大優(yōu)勢在于簡便的數(shù)據(jù)表示能力,而在.NET中,大部分來自數(shù)據(jù)庫的數(shù)據(jù),
22、都通過中,大部分來自數(shù)據(jù)庫的數(shù)據(jù),都通過DataSet存儲,因為存儲,因為其有一次讀取,多次使用的優(yōu)點。為了提高網(wǎng)絡數(shù)據(jù)傳輸能其有一次讀取,多次使用的優(yōu)點。為了提高網(wǎng)絡數(shù)據(jù)傳輸能力,經(jīng)常需要在力,經(jīng)常需要在DataSet和和XML文件之間進行一些轉(zhuǎn)換。本文件之間進行一些轉(zhuǎn)換。本節(jié)通過實例學習如何實現(xiàn)這些轉(zhuǎn)換。節(jié)通過實例學習如何實現(xiàn)這些轉(zhuǎn)換。10.4.1 將將XML文件轉(zhuǎn)化為文件轉(zhuǎn)化為DataSet數(shù)據(jù)集數(shù)據(jù)集在在Visual Studio中,提供了很多數(shù)據(jù)控件(如中,提供了很多數(shù)據(jù)控件(如GridView、DataList等),這些控件都提供一個屬性等),這些控件都提供一個屬性DataSour
23、ce,用其可以,用其可以很方便地將控件與數(shù)據(jù)源綁定,直接顯示數(shù)據(jù)庫中的數(shù)據(jù)。很方便地將控件與數(shù)據(jù)源綁定,直接顯示數(shù)據(jù)庫中的數(shù)據(jù)。如果數(shù)據(jù)由一個如果數(shù)據(jù)由一個XML文件組成,那該如何綁定到這些數(shù)據(jù)控文件組成,那該如何綁定到這些數(shù)據(jù)控件上呢?下面的例子將通過一個轉(zhuǎn)換過程,實現(xiàn)件上呢?下面的例子將通過一個轉(zhuǎn)換過程,實現(xiàn)XML文件的數(shù)據(jù)文件的數(shù)據(jù)綁定。演示步驟如下。綁定。演示步驟如下。(1)打開)打開Visual Studio,新建一個網(wǎng)站,命名為,新建一個網(wǎng)站,命名為“XMLDataSet”。(2)在根目錄下,添加一個)在根目錄下,添加一個XML文件文件students.xml。(3)在網(wǎng)站根目錄下,添加一個)在網(wǎng)站根目錄下,添加一個Web窗體,命名為窗體,命名為“Xml2DataSet”。(4)設計頁面的布局如圖所示。)設計頁面的布局如圖所示。(5)雙擊頁面空白處,切換到葉面的)雙擊頁面空白處,切換到葉面的Page_Load事件中,編寫事件中,編寫轉(zhuǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 污水站維護合同范本
- 路橋合同租賃合同范本
- 窒息患者護理措施提問
- 社區(qū)內(nèi)科護理
- 腸結(jié)病護理中醫(yī)
- 2025至2030年中國建筑鐘數(shù)據(jù)監(jiān)測研究報告
- 浙江國企招聘2024寧波象山鐵路投資有限公司招聘1人筆試參考題庫附帶答案詳解
- 結(jié)腸癌護理常規(guī)
- 二零二五年度網(wǎng)絡安全股東投資入股合同
- 二零二五年度城市商品房定金合同
- 生物產(chǎn)品檢驗檢疫基礎知識單選題100道及答案
- 江蘇省中職《英語》學業(yè)水平考試備考試題集(含歷年真題)
- 2025年合伙型公司新合伙人加入?yún)f(xié)議
- 2025年安全員之C證(專職安全員)考試題庫
- 2025城市商鋪買賣合同書
- 醫(yī)院感染及其危害
- 2025年春新北師大版物理八年級下冊課件 第六章 質(zhì)量和密度 第一節(jié) 物體的質(zhì)量及其測量
- 2024全國各省高考詩歌鑒賞真題及解析
- 《價值觀培訓》課件
- 《臨床科研思維》課件
- GA/T 761-2024停車庫(場)安全管理系統(tǒng)技術(shù)要求
評論
0/150
提交評論