XmlReader類非常類似于MSXML SDK中的SAX。它們最大的一個區(qū)別是SAX是一種推模型(push model),它把監(jiān)控數(shù)據(jù)推入應(yīng)用程序中,開發(fā)人員必須準備接受它,而XmlReader是一種拉模型(push model),它把應(yīng)用程序請求的數(shù)據(jù)拉入該應(yīng)用程序。這樣就有一種更簡單、更直觀的編程模型。另一個優(yōu)點是拉模型可以選擇把什么數(shù)據(jù)發(fā)送給應(yīng)用程序。如果不需要所有數(shù)據(jù),就不需要處理它。而在推模型中,所有XML數(shù)據(jù)都必須由應(yīng)用程序處理,無論是否需要這些數(shù)據(jù)。
下面介紹一個非常簡單的示例,以讀取XML數(shù)據(jù),后面將詳細介紹XmlReader類,這些代碼在XmlReaderSample文件夾中。下面的代碼將讀取book.xml文檔中的數(shù)據(jù)。在讀取每個節(jié)點時,都要檢查Node Type屬性。如果節(jié)點時一個文本節(jié)點,就把其值追加到文本框中(代碼文件XMLReaderSample.sIn)。
另一個可以使用的對象是XmlReaderSettings,它指定讀取器的功能。例如,可以使用構(gòu)架來驗證數(shù)據(jù)流。把Schemas屬性設(shè)置為一個有效的XMLSchemaSet對象,來緩存XSD構(gòu)架。接著把XmlReaderSettings對象的XsdValidate屬性設(shè)置為true。
有幾個Ignore屬性可用于控制讀取器處理某些節(jié)點和值的方式。這些屬性包括IgnoreComments、IgnoreIdentityConstraints、IgnoreProcessingInstructions、IgnoreSchemaLocation和Ignore Whitespace,它們可以從文檔中提取某些項。
遍歷文檔有幾種方式,如前面的示例所示,ReadO方法可以進入下一個節(jié)點。然后驗證該節(jié)點是否有一個值,或者該節(jié)點是否有特性。也可以使用ReadStartElementO方法,該方法驗證當前節(jié)點是否是起始元素,如果是起始元素,就可以定位到下一個節(jié)點上。如果不是起始元素,就引發(fā)一個XmIException異常。調(diào)用這個方法和調(diào)用ReadO方法后在調(diào)用IsStartElementO方法是一樣的。
ReadElementStringO類似于ReadStringO,但它可以選擇以元素名作為參數(shù)。如果下一個內(nèi)容節(jié)點不是起始標記,或者如果Name參數(shù)不匹配當前的節(jié)點Name,就會引發(fā)異常。
在while循環(huán)中,使用MoveToContentO方法查找類型為XmINodeType.Element、名稱為title的節(jié)點。我們使用XmlTextReader類的EOF屬性作為循環(huán)條件。如果節(jié)點的類型不是Element,或者名稱不是title else子句就會調(diào)用ReadO方法進入下一節(jié)點。當查找到一個滿足條件的節(jié)點時,就把ReadElementStringO方法的結(jié)果添加到列表框中。這樣就在類表框中添加一個書名。注意,在成功執(zhí)行ReadElementStringO方法后,不需要調(diào)用ReadO方法,不需要調(diào)用ReadO方法,因為ReadElementStringO方法已經(jīng)使用了整個Element,并定位到下一個節(jié)點上。
★關(guān)于WorkWin公司電腦監(jiān)控軟件★
WorkWin的使命是打造Work用途的Windows 電腦系統(tǒng),有效規(guī)范員工上網(wǎng)行為,讓老板知道員工每天在做什么(監(jiān)控包括屏幕、上網(wǎng)在內(nèi)的一舉一動),限制員工不能做什么(禁止網(wǎng)購、游戲、優(yōu)盤等)。
WorkWin基于純軟件設(shè)計,非常容易使用,無需添加或改動任何硬件,使用一臺管理機監(jiān)控全部員工機電腦。歷經(jīng)南京網(wǎng)亞十余年精心打造,此時此刻每天都有成千上萬企業(yè)電腦正在運行WorkWin,選擇WorkWin選擇“贏”。
WorkWin監(jiān)控首頁 短視頻講解 下載免費試用版
版權(quán)所有,南京網(wǎng)亞計算機有限公司 。本文鏈接地址: 使用XmlReader類推入監(jiān)控數(shù)據(jù)