日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

圖解DotNet框架之六:System.XML

系統(tǒng) 1878 0

( 聲明:本系列只想給大家介紹.net框架,并不是語法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查 )

上面一篇,對system.Reflection做了初步的研究,本來這篇開始要講解Winform應(yīng)用程序的流程框架,可是突然想到還有XML這個東西沒有講解,只好這篇補上了,下篇再講應(yīng)用程序吧,失誤,請原諒!

XML是一種標(biāo)記語言,就應(yīng)該有一種工具按一定的語法來分析和理解存儲在文檔中信息。這個工具就是XML分析器---一個組件用于讀標(biāo)記文本并返回指定平臺的對象。.NET 框架支持兩種不同的分析模式:XMLDOM分析器和XML閱寫器。我們來看圖

圖解DotNet框架之六:System.XML

1.讀寫器:

它的工作方式類似于數(shù)據(jù)庫的游標(biāo)。XML閱讀器的客戶端收到一個指向閱讀器實例的引用。該實例提取底層的數(shù)據(jù)流并把取出的數(shù)據(jù)呈現(xiàn)為一棵XML樹。閱讀器類提供只讀、向前的游標(biāo),你可以用閱讀器類提供的方法滾動游標(biāo)遍歷結(jié)果集中的每一條數(shù)據(jù)。
XMLReader:是一個提供對 XML文檔 數(shù)據(jù)的非緩存、只進只讀訪問的抽象基類。有二個子類繼承并擴展了他.

XMLTextReader:繼承自XMLReader,提供對 XML文檔 數(shù)據(jù)進行快速、非緩存、只進訪問的讀取器。

XMLNodeReader:繼承自XMLReader,提供對XML文檔的Node 中的 XML 數(shù)據(jù)進行快速、非緩存的只進訪問的讀取器。

XMLWrite:一個編寫器抽象基類,該編寫器提供一種快速、非緩存和只進的方式來生成包含 XML 數(shù)據(jù)的流或文件。

2.DOM分析器:

XMLNode: XML 文檔中的單個節(jié)點。是 DOM 實現(xiàn)中的基類。

XMLAttribute:繼承自XMLNode,表示XML文檔中節(jié)點的屬性。

XMLDocument:繼承自XMLNode,表示XML文檔。

XMLLinkedNode :獲取緊靠該節(jié)點(之前或之后)的節(jié)點。

XML也是一種數(shù)據(jù)保存的格式,他就像個數(shù)據(jù)庫表。那么他也用到了我們在System.Data一篇中提到的數(shù)據(jù)源架構(gòu)模式,我們來回憶一下3種屬于數(shù)據(jù)層的架構(gòu)模式

1.表數(shù)據(jù)入口:一個表實例處理數(shù)據(jù)庫表中的所有行.(Adapter中承載了一張表,他就代表數(shù)據(jù)庫,可以對數(shù)據(jù)進行填刪改查等操作)

2.行數(shù)據(jù)入口:訪問表中單條記錄地對象,一行一個實例.(DataReader,這里的行數(shù)據(jù)只能讀取,而不能修改.每一次Reader.Next(),就會返回一個數(shù)據(jù)行.)

3.?dāng)?shù)據(jù)影射器(ORM):.NET中沒有這種模式,ORM本身就很復(fù)雜,這里就不講解了.

這里的閱讀器就相當(dāng)于System.Data中的DataReader,他是一條一條的讀取數(shù)據(jù),每條數(shù)據(jù)都是一個Reader中的實例,所以他屬于行數(shù)據(jù)入口。分析器就好比Adapter,將XML文檔的所有數(shù)據(jù)一次裝載了進來,一個DOM就是一個表(文檔)的實例,那么他屬于行數(shù)據(jù)入口。

我們來看下XML,在.net中如何操作。

使用讀寫器

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> XmlTextReaderaXmlTextReader = new XmlTextReader( @" C:/text.xml " );
while (aXmlTextReader.Read())
{
//
}

aXmlTextReader.Close();


XmlTextWriterxmlWriter
= new XmlTextWriter(url,System.Text.Encoding.UTF8);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement(
" Root " );
xmlWriter.WriteStartElement(
" Leaf " );
xmlWriter.WriteString(
" Test " );
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.Close();

使用分析器:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> XmlDocumentxmlDoc = new XmlDocument();
// 創(chuàng)建根節(jié)點
XmlElementroot = xmlDoc.CreateElement( " Root " );
xmlDoc.AppendChild(root);
XmlNodebook
= xmlDoc.CreateElement( " Book " );
XmlElementtitle
= xmlDoc.CreateElement( " Title " );
title.InnerText
= " SQLServer " ;
book.AppendChild(title);
XmlElementisbn
= xmlDoc.CreateElement( " ISBN " );
isbn.InnerText
= " 444444 " ;
book.AppendChild(isbn);
XmlElementauthor
= xmlDoc.CreateElement( " Author " );
author.InnerText
= " jia " ;
book.AppendChild(author);
XmlElementprice
= xmlDoc.CreateElement( " Price " );
price.InnerText
= " 120 " ;
price.SetAttribute(
" Unit " , "" );
book.AppendChild(price);
root.AppendChild(book);
xmlDoc.Save(
" Books.xml " );

OK,對XML的操作我們就介紹到這里。

圖解DotNet框架之六:System.XML


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 广州市| 建宁县| 姚安县| 林芝县| 西充县| 湟源县| 绥宁县| 大庆市| 漳浦县| 昌黎县| 灵寿县| 邢台县| 梁河县| 香河县| 简阳市| 恩施市| 商都县| 双桥区| 娱乐| 江北区| 彭山县| 平安县| 陇南市| 黑龙江省| 南宁市| 榆林市| 澜沧| 赞皇县| 沿河| 汉源县| 如东县| 岱山县| 泰安市| 西华县| 浙江省| 襄垣县| 兴山县| 淳安县| 中江县| 吉林市| 望都县|