日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET 2.0 XML 系列(4):用XmlReader类介绍

發(fā)布時間:2025/7/14 asp.net 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET 2.0 XML 系列(4):用XmlReader类介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

(本文摘自MSDN)

XmlReader 類是一個提供對 XML 數(shù)據(jù)的非緩存、只進只讀訪問的抽象基類。該類符合 W3C 可擴展標記語言 (XML) 1.0 和 XML 中的命名空間的建議。

XmlReader 類支持從流或文件讀取 XML 數(shù)據(jù)。該類定義的方法和屬性使您可以瀏覽數(shù)據(jù)并讀取節(jié)點的內(nèi)容。當前節(jié)點指讀取器所處的節(jié)點。使用任何返回當前節(jié)點值的讀取方法和屬性推進讀取器。

XmlReader 類使您可以:

  • 檢查字符是不是合法的 XML 字符,元素和屬性的名稱是不是有效的 XML 名稱。

  • 檢查 XML 文檔的格式是否正確。

  • 根據(jù) DTD 或架構(gòu)驗證數(shù)據(jù)。

  • 從 XML 流檢索數(shù)據(jù)或使用提取模型跳過不需要的記錄。

使用XmlReader讀取XML文檔之前,我們有必要了解一下這個類的屬性和方法,以及節(jié)點XmlNode的類型。

1. XmlReader類的屬性

名稱 說明
AttributeCount 當在派生類中被重寫時,獲取當前節(jié)點上的屬性數(shù)。
BaseURI 當在派生類中被重寫時,獲取當前節(jié)點的基 URI。
CanReadBinaryContent 獲取一個值,該值指示 XmlReader 是否實現(xiàn)二進制內(nèi)容讀取方法。
CanReadValueChunk 獲取一個值,該值指示 XmlReader 是否實現(xiàn) ReadValueChunk 方法。
CanResolveEntity 獲取一個值,該值指示此讀取器是否可以分析和解析實體。
Depth 當在派生類中被重寫時,獲取 XML 文檔中當前節(jié)點的深度。
EOF 當在派生類中被重寫時,獲取一個值,該值指示此讀取器是否定位在流的結(jié)尾。
HasAttributes 獲取一個值,該值指示當前節(jié)點是否有任何屬性。
HasValue 當在派生類中被重寫時,獲取一個值,該值指示當前節(jié)點是否可以具有 Value。
IsDefault 當在派生類中被重寫時,獲取一個值,該值指示當前節(jié)點是否是從 DTD 或架構(gòu)中定義的默認值生成的屬性。
IsEmptyElement 當在派生類中被重寫時,獲取一個值,該值指示當前節(jié)點是否為空元素(例如 <MyElement/>)。
Item 已重載。 當在派生類中被重寫時,獲取此屬性的值。
LocalName 當在派生類中被重寫時,獲取當前節(jié)點的本地名稱。
Name 當在派生類中被重寫時,獲取當前節(jié)點的限定名。
NamespaceURI 當在派生類中被重寫時,獲取讀取器定位在其上的節(jié)點的命名空間 URI(采用 W3C 命名空間規(guī)范中定義的形式)。
NameTable 當在派生類中被重寫時,獲取與該實現(xiàn)關(guān)聯(lián)的 XmlNameTable。
NodeType 當在派生類中被重寫時,獲取當前節(jié)點的類型。
Prefix 當在派生類中被重寫時,獲取與當前節(jié)點關(guān)聯(lián)的命名空間前綴。
QuoteChar 當在派生類中被重寫時,獲取用于括住屬性節(jié)點值的引號字符。
ReadState 當在派生類中被重寫時,獲取讀取器的狀態(tài)。
SchemaInfo 獲取作為架構(gòu)驗證結(jié)果分配給當前節(jié)點的架構(gòu)信息。
Settings 獲取用于創(chuàng)建此 XmlReader 實例的 XmlReaderSettings 對象。
Value 當在派生類中被重寫時,獲取當前節(jié)點的文本值。
ValueType 獲取當前節(jié)點的公共語言運行庫 (CLR) 類型。
XmlLang 當在派生類中被重寫時,獲取當前的 xml:lang 范圍。
XmlSpace 當在派生類中被重寫時,獲取當前的 xml:space 范圍。

?

2. XmlReader類的方法

?

名稱說明
Close 當在派生類中被重寫時,將 ReadState 更改為 Closed。
Create 已重載。 創(chuàng)建一個新的 XmlReader 實例。
Equals? 已重載。 確定兩個 Object 實例是否相等。 (從 Object 繼承。)
GetAttribute 已重載。 當在派生類中被重寫時,獲取屬性的值。
GetHashCode? 用作特定類型的哈希函數(shù)。GetHashCode 適合在哈希算法和數(shù)據(jù)結(jié)構(gòu)(如哈希表)中使用。 (從 Object 繼承。)
GetType? 獲取當前實例的 Type。 (從 Object 繼承。)
IsName 獲取一個值,該值指示字符串參數(shù)是否是有效的 XML 名稱。
IsNameToken 獲取一個值,該值指示該字符串參數(shù)是否是有效的 XML 名稱標記。
IsStartElement 已重載。 測試當前內(nèi)容節(jié)點是否是開始標記。
LookupNamespace 當在派生類中被重寫時,在當前元素的范圍內(nèi)解析命名空間前綴。
MoveToAttribute 已重載。 當在派生類中被重寫時,移動到指定的屬性。
MoveToContent 檢查當前節(jié)點是否是內(nèi)容(非空白文本、CDATA、Element、EndElement、EntityReference 或 EndEntity)節(jié)點。如果此節(jié)點不是內(nèi)容節(jié)點,則讀取器向前跳至下一個內(nèi)容節(jié)點或文件結(jié)尾。它跳過以下類型的節(jié)點:ProcessingInstruction、DocumentType、Comment、Whitespace 或 SignificantWhitespace。
MoveToElement 當在派生類中被重寫時,移動到包含當前屬性節(jié)點的元素。
MoveToFirstAttribute 當在派生類中被重寫時,移動到第一個屬性。
MoveToNextAttribute 當在派生類中被重寫時,移動到下一個屬性。
Read 當在派生類中被重寫時,從流中讀取下一個節(jié)點。
ReadAttributeValue 當在派生類中被重寫時,將屬性值解析為一個或多個 Text、EntityReference 或 EndEntity 節(jié)點。
ReadContentAs 將內(nèi)容作為指定類型的對象讀取。
ReadContentAsBase64 讀取內(nèi)容并返回 Base64 解碼的二進制字節(jié)。
ReadContentAsBinHex 讀取內(nèi)容并返回 BinHex 解碼的二進制字節(jié)。
ReadContentAsBoolean 將當前位置的文本內(nèi)容作為 Boolean 讀取。
ReadContentAsDateTime 將當前位置的文本內(nèi)容作為 DateTime 對象讀取。
ReadContentAsDecimal 將當前位置的文本內(nèi)容作為 Decimal 對象讀取。
ReadContentAsDouble 將當前位置的文本內(nèi)容作為雙精度浮點數(shù)讀取。
ReadContentAsFloat 將當前位置的文本內(nèi)容作為單精度浮點數(shù)讀取。
ReadContentAsInt 將當前位置的文本內(nèi)容作為 32 位有符號整數(shù)讀取。
ReadContentAsLong 將當前位置的文本內(nèi)容作為 64 位有符號整數(shù)讀取。
ReadContentAsObject 將當前位置的文本內(nèi)容作為 Object 讀取。
ReadContentAsString 將當前位置的文本內(nèi)容作為 String 對象讀取。
ReadElementContentAs 已重載。 讀取當前元素,并將內(nèi)容作為指定類型的對象返回。
ReadElementContentAsBase64 讀取元素并對 Base64 內(nèi)容進行解碼。
ReadElementContentAsBinHex 讀取元素并對 BinHex 內(nèi)容進行解碼。
ReadElementContentAsBoolean 已重載。 將當前元素值作為 Boolean 對象讀取。
ReadElementContentAsDateTime 已重載。 讀取當前元素并將內(nèi)容作為 DateTime 對象返回。
ReadElementContentAsDecimal 已重載。 將當前元素值作為 Decimal 對象讀取。
ReadElementContentAsDouble 已重載。 讀取當前元素并將內(nèi)容作為雙精度浮點數(shù)返回。
ReadElementContentAsFloat 已重載。 將當前元素值作為單精度浮點數(shù)讀取。
ReadElementContentAsInt 已重載。 讀取當前元素并將內(nèi)容作為 32 位有符號整數(shù)返回。
ReadElementContentAsLong 已重載。 讀取當前元素并將內(nèi)容作為 64 位有符號整數(shù)返回。
ReadElementContentAsObject 已重載。 讀取當前元素并將內(nèi)容作為 Object 返回。
ReadElementContentAsString 已重載。 讀取當前元素并將內(nèi)容作為 String 對象返回。
ReadElementString 已重載。 這是一個用于讀取簡單純文本元素的 Helper 方法。
ReadEndElement 檢查當前內(nèi)容節(jié)點是否為結(jié)束標記并將讀取器推進到下一個節(jié)點。
ReadInnerXml 當在派生類中被重寫時,將所有內(nèi)容(包括標記)當做字符串讀取。
ReadOuterXml 當在派生類中被重寫時,讀取表示該節(jié)點和所有它的子級的內(nèi)容(包括標記)。
ReadStartElement 已重載。 檢查當前節(jié)點是否為元素并將讀取器推進到下一個節(jié)點。
ReadString 當在派生類中被重寫時,將元素或文本節(jié)點的內(nèi)容當做字符串讀取。
ReadSubtree 返回新的 XmlReader 實例,此實例可用于讀取當前節(jié)點及其所有子節(jié)點。
ReadToDescendant 已重載。 讓 XmlReader 前進到下一個匹配的子代元素。
ReadToFollowing 已重載。 一直讀取,直到找到命名元素。
ReadToNextSibling 已重載。 讓 XmlReader 前進到下一個匹配的同級元素。
ReadValueChunk 讀取嵌入在 XML 文檔中的大量文本流。
ReferenceEquals? 確定指定的 Object 實例是否是相同的實例。 (從 Object 繼承。)
ResolveEntity 當在派生類中被重寫時,解析 EntityReference 節(jié)點的實體引用。
Skip 跳過當前節(jié)點的子級。
ToString? 返回表示當前 Object 的 String。 (從 Object 繼承。)

?

3. XmlNodeType枚舉成員

?

成員名稱說明
Attribute屬性(例如,id='123')。 Attribute 節(jié)點可以具有以下子節(jié)點類型:Text 和 EntityReference。Attribute 節(jié)點不以任何其他節(jié)點類型子節(jié)點的形式出現(xiàn)。不將其視為 Element 的子節(jié)點。
CDATACDATA 節(jié)(例如,<![CDATA[my escaped text]]>)。CDATA 節(jié)用于轉(zhuǎn)義否則將被識別為標記的文本塊。CDATA 節(jié)點不能有任何子節(jié)點。它可以以 DocumentFragment、EntityReference 和 Element 節(jié)點子級的形式出現(xiàn)。
Comment注釋(例如,<!-- my comment -->)。 Comment 節(jié)點不能有任何子節(jié)點。它可以以 Document、DocumentFragment、Element 和 EntityReference 節(jié)點子級的形式出現(xiàn)。
Document作為文檔樹的根的文檔對象提供對整個 XML 文檔的訪問。 Document 節(jié)點可以具有以下子節(jié)點類型:XmlDeclaration、Element(最多一個)、ProcessingInstruction、Comment 和 DocumentType。它不能以任何節(jié)點類型子級的形式出現(xiàn)。
DocumentFragment文檔片段。 DocumentFragment 節(jié)點將節(jié)點或子樹與文檔關(guān)聯(lián)起來,而實際上并不包含在該文檔中。DocumentFragment 節(jié)點可以具有以下子節(jié)點類型:Element、ProcessingInstruction、Comment、Text、CDATA 和 EntityReference。它不能以任何節(jié)點類型子級的形式出現(xiàn)。
DocumentType由以下標記指示的文檔類型聲明(例如,<!DOCTYPE...>)。 DocumentType 節(jié)點可以具有以下子節(jié)點類型:Notation 和 Entity。它可以以 Document 節(jié)點子級的形式出現(xiàn)。
Element元素(例如,<item>)。 Element 節(jié)點可以具有以下子節(jié)點類型:Element、Text、Comment、ProcessingInstruction、CDATA 和 EntityReference。它可以是 Document、DocumentFragment、EntityReference 和 Element 節(jié)點的子級。
EndElement末尾元素標記(例如,</item>)。 當 XmlReader 到達元素的末尾時,返回 EndElement 節(jié)點。
EndEntity由于調(diào)用 ResolveEntity 而使 XmlReader 到達實體替換的末尾時返回。
Entity實體聲明(例如,<!ENTITY...>)。 Entity 節(jié)點可以具有表示已展開實體的子節(jié)點(例如 Text 和 EntityReference 節(jié)點)。它可以以 DocumentType 節(jié)點子級的形式出現(xiàn)。
EntityReference實體引用(例如,&num;)。 EntityReference 節(jié)點可以具有以下子節(jié)點類型:Element、ProcessingInstruction、Comment、Text、CDATA 和 EntityReference。它可以以 Attribute、DocumentFragment、Element 和 EntityReference 節(jié)點子級的形式出現(xiàn)。
None如果未調(diào)用 Read 方法,則由 XmlReader 返回。
Notation文檔類型聲明中的表示法(例如,<!NOTATION...>)。Notation 節(jié)點不能具有任何子節(jié)點。它可以以 DocumentType 節(jié)點子級的形式出現(xiàn)。
ProcessingInstruction處理指令(例如,<?pi test?>)。 ProcessingInstruction 節(jié)點不能具有任何子節(jié)點。它可以以 Document、DocumentFragment、Element 和 EntityReference 節(jié)點子級的形式出現(xiàn)。
SignificantWhitespace混合內(nèi)容模型中標記間的空白或 xml:space="preserve" 范圍內(nèi)的空白。
Text節(jié)點的文本內(nèi)容。 Text 節(jié)點不能具有任何子節(jié)點。它可以以 Attribute、DocumentFragment、Element 和 EntityReference 節(jié)點的子節(jié)點的形式出現(xiàn)。
Whitespace標記間的空白。
XmlDeclarationXML 聲明(例如,<?xml version='1.0'?>)。XmlDeclaration 節(jié)點必須是文檔中的第一個節(jié)點。它不能具有子級。它是 Document 節(jié)點的子級。它可以具有提供版本和編碼信息的屬性。

轉(zhuǎn)載于:https://www.cnblogs.com/cnblogsfans/archive/2008/03/15/1107217.html

總結(jié)

以上是生活随笔為你收集整理的ASP.NET 2.0 XML 系列(4):用XmlReader类介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。