明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

在.NET Framework中簡(jiǎn)單處理XML數(shù)據(jù)(2-2)

[摘要]String和Fragment 程序員把在MSXML的程序剪切下來(lái),會(huì)發(fā)現(xiàn)在COM和.NET Framework XML API 之間的差別很大。.NET Framework類(lèi)本身沒(méi)有提供方法去分析存儲(chǔ)在字符串中XML數(shù)據(jù)。不像MSXML分析器對(duì)象,XmlTestReader類(lèi)沒(méi)有提供任何...
String和Fragment

程序員把在MSXML的程序剪切下來(lái),會(huì)發(fā)現(xiàn)在COM和.NET Framework XML API 之間的差別很大。.NET Framework類(lèi)本身沒(méi)有提供方法去分析存儲(chǔ)在字符串中XML數(shù)據(jù)。不像MSXML分析器對(duì)象,XmlTestReader類(lèi)沒(méi)有提供任何一種LoadXML方法從一個(gè)格式良好的字符中創(chuàng)建閱讀器。沒(méi)有提供類(lèi)似LoadXML的方法因?yàn)槟憧梢杂锰厥獾膖ext reader---StringReader類(lèi)來(lái)獲得同樣的功能。

XmlTextReader其中一個(gè)構(gòu)造函數(shù)接受一個(gè)TextReader派生對(duì)象和一個(gè)XML reader作參數(shù)(該閱讀器以text reader的內(nèi)容為基礎(chǔ)創(chuàng)建)。一個(gè)text reader類(lèi)是一個(gè)流,這個(gè)流是輸入的字符經(jīng)優(yōu)化生成的。StringReader類(lèi)繼承TextReader類(lèi),并用一個(gè)內(nèi)存中字符串作為其輸入流。下面的代碼片斷演示了怎樣初始化一個(gè)XML reader,用一個(gè)格式良好的XML 字符串作為其輸入:

string xmlText = "...";

StringReader strReader = new StringReader(xmlText);

XmlTextReader reader = new XmlTextReader(strReader);



另外,用StringWriter類(lèi)代替TextWrite類(lèi),你可以從內(nèi)存字符中創(chuàng)建一個(gè)XML文檔。

一個(gè)指定類(lèi)型的XML字符串是一個(gè)XML片斷(fragment). XML片斷由XML文本構(gòu)成,但沒(méi)有根節(jié)點(diǎn)的XML文檔不是格式良好的XML文檔,所以不能被應(yīng)用。一個(gè)XML片斷是原始的文檔的一部分,所以它可能缺少根節(jié)點(diǎn)。例如,下面的XML文本是一個(gè)有效的XML 片斷,但不是一個(gè)有效的XML文檔,因?yàn)樗鼪](méi)有根節(jié)點(diǎn):

Dino

Esposito

.NET Framework XML API允許程序員把XML片斷與一個(gè)分析器內(nèi)容結(jié)合使用,分析器內(nèi)容由類(lèi)似encoding字符集,DTD文檔,命名空間,語(yǔ)言和空格處理程序構(gòu)成:

public XmlTextReader(

string xmlFragment,

XmlNodeType fragType,

XmlParserContext context

);

xmlFragment參數(shù)包括了XML字符串分析。FragType參數(shù)表示fragment的類(lèi)型,它給出了fragment根節(jié)點(diǎn)的類(lèi)型。只有element,attibute和document類(lèi)型的節(jié)點(diǎn)才能作為fragment的根節(jié)點(diǎn),分析器的內(nèi)容才能被XmlParserContext類(lèi)解釋。