XmlReader 類別

定義

表示提供快速、非快取、順向 (Forward-only) 存取 XML 資料的讀取器 (Reader)。

public ref class XmlReader abstract : IDisposable
public ref class XmlReader abstract
public abstract class XmlReader : IDisposable
public abstract class XmlReader
type XmlReader = class
    interface IDisposable
type XmlReader = class
Public MustInherit Class XmlReader
Implements IDisposable
Public MustInherit Class XmlReader
繼承
XmlReader
衍生
實作

範例

下列範例程式代碼示範如何使用異步 API 來剖析 XML。

async Task TestReader(System.IO.Stream stream)
{
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.Async = true;

    using (XmlReader reader = XmlReader.Create(stream, settings))
    {
        while (await reader.ReadAsync())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    Console.WriteLine("Start Element {0}", reader.Name);
                    break;
                case XmlNodeType.Text:
                    Console.WriteLine("Text Node: {0}",
                             await reader.GetValueAsync());
                    break;
                case XmlNodeType.EndElement:
                    Console.WriteLine("End Element {0}", reader.Name);
                    break;
                default:
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value);
                    break;
            }
        }
    }
}
Public Async Function TestReader(stream As System.IO.Stream) As Task
    Dim settings As New XmlReaderSettings()
    settings.Async = True

    Using reader As XmlReader = XmlReader.Create(stream, settings)
        While (Await reader.ReadAsync())
            Select Case (reader.NodeType)
                Case XmlNodeType.Element
                    Console.WriteLine("Start Element {0}", reader.Name)
                Case XmlNodeType.Text
                    Console.WriteLine("Text Node: {0}",
                             Await reader.GetValueAsync())
                Case XmlNodeType.EndElement
                    Console.WriteLine("End Element {0}", reader.Name)
                Case Else
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value)
            End Select
        End While
    End Using
End Function

備註

如需此 API 的詳細資訊,請參閱 XmlReader 補充 API 備註

建構函式

XmlReader()

初始化 XmlReader 類別的新執行個體。

屬性

AttributeCount

在衍生類別中覆寫時,取得目前節點上的屬性數目。

BaseURI

在衍生類別中覆寫時,取得目前節點的基底 URI。

CanReadBinaryContent

取得值,這個值表示 XmlReader 是否會實作二進位內容讀取方法。

CanReadValueChunk

取得值,表示 XmlReader 是否會實作 ReadValueChunk(Char[], Int32, Int32) 方法。

CanResolveEntity

取得值,指出這個讀取器是否可以剖析和解析實體。

Depth

在衍生類別中覆寫時,取得 XML 文件中目前節點的深度。

EOF

在衍生類別中覆寫時,取得指出讀取器是否在資料流結尾的值。

HasAttributes

取得值,表示目前節點是否具有任何屬性。

HasValue

在衍生類別中覆寫時,取得指出目前節點是否具有 Value 的值。

IsDefault

在衍生類別中覆寫時,取得值,指出目前節點是否為從 DTD 或結構描述中定義的預設值產生的屬性。

IsEmptyElement

在衍生類別中覆寫時,取得值,指出目前節點是否為空元素 (,例如) <MyElement/>

Item[Int32]

在衍生類別中覆寫時,取得具有指定索引的屬性值。

Item[String, String]

在衍生類別中覆寫時,取得具有指定 LocalNameNamespaceURI 的屬性值。

Item[String]

在衍生類別中覆寫時,取得具有指定 Name 的屬性值。

LocalName

在衍生類別中覆寫時,取得目前節點的區域名稱。

Name

在衍生類別中覆寫時,取得目前節點的限定名稱。

NamespaceURI

在衍生類別中覆寫時,取得讀取器所在節點的命名空間 URI (如 W3C 命名空間規格中所定義)。

NameTable

在衍生類別中覆寫時,取得與這個實作相關聯的 XmlNameTable

NodeType

在衍生類別中覆寫時,取得目前節點的類型。

Prefix

在衍生類別中覆寫時,取得與目前節點相關的命名空間前置詞。

QuoteChar

在衍生類別中覆寫時,取得用來括住屬性節點值的引號字元。

ReadState

在衍生類別中覆寫時,取得讀取器的狀態。

SchemaInfo

取得在結構描述驗證之後已指派給目前節點的結構描述資訊。

Settings

取得 XmlReaderSettings 物件,用於建立這個 XmlReader 執行個體。

Value

在衍生類別中覆寫時,取得目前節點的文字值。

ValueType

取得目前節點的 Common Language Runtime (CLR) 型別。

XmlLang

當在衍生類別中覆寫時,取得目前xml:lang範圍。

XmlSpace

當在衍生類別中覆寫時,取得目前xml:space範圍。

方法

Close()

在衍生類別中覆寫時,將 ReadState 變更為 Closed

Create(Stream)

使用指定的資料流,以預設設定建立新的 XmlReader 執行個體。

Create(Stream, XmlReaderSettings)

使用指定的資料流及設定,建立新的 XmlReader

Create(Stream, XmlReaderSettings, String)

使用指定的資料流、基底 URI 和設定,建立新的 XmlReader 執行個體。

Create(Stream, XmlReaderSettings, XmlParserContext)

使用剖析用的指定資料流、設定和內容資訊,建立新的 XmlReader 執行個體。

Create(String)

使用指定的 URI,建立新的 XmlReader 執行個體。

Create(String, XmlReaderSettings)

使用指定的 URI 和設定,建立新的 XmlReader 執行個體。

Create(String, XmlReaderSettings, XmlParserContext)

使用剖析用的指定 URI、設定和內容資訊,建立新的 XmlReader 執行個體。

Create(TextReader)

使用指定的文字讀取器,建立新的 XmlReader 執行個體。

Create(TextReader, XmlReaderSettings)

使用指定的文字讀取器及設定,建立新的 XmlReader 執行個體。

Create(TextReader, XmlReaderSettings, String)

使用指定的文字讀取器、設定和基底 URI,建立新的 XmlReader 執行個體。

Create(TextReader, XmlReaderSettings, XmlParserContext)

使用指定的文字讀取器、設定和內容資訊進行剖析,建立新的 XmlReader 執行個體。

Create(XmlReader, XmlReaderSettings)

使用指定的 XML 讀取器和設定,建立新的 XmlReader 執行個體。

Dispose()

釋放 XmlReader 類別目前的執行個體所使用的全部資源。

Dispose(Boolean)

釋放 XmlReader 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetAttribute(Int32)

在衍生類別中覆寫時,取得具有指定索引的屬性值。

GetAttribute(String)

在衍生類別中覆寫時,取得具有指定 Name 的屬性值。

GetAttribute(String, String)

在衍生類別中覆寫時,取得具有指定 LocalNameNamespaceURI 的屬性值。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetValueAsync()

非同步取得目前節點的值。

IsName(String)

傳回值,指出字串引數是否為有效的 XML 名稱。

IsNameToken(String)

傳回值,指出字串引數是否為有效的 XML 名稱語彙基元。

IsStartElement()

呼叫 MoveToContent() 並測試目前的內容節點為開頭標記或空白項目標記。

IsStartElement(String)

呼叫 MoveToContent() 並測試目前的內容節點為開頭標記或空白項目標記,以及所找到項目的 Name 屬性是否符合指定的引數。

IsStartElement(String, String)

呼叫 MoveToContent() 並測試目前的內容節點為開頭標記或空白項目標記,以及所找到項目的 LocalNameNamespaceURI 屬性是否符合指定的字串。

LookupNamespace(String)

在衍生類別中覆寫時,解析目前項目範圍內的命名空間前置詞。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MoveToAttribute(Int32)

在衍生類別中覆寫時,移至具有指定索引的屬性。

MoveToAttribute(String)

在衍生類別中覆寫時,移至具有指定 Name 的屬性。

MoveToAttribute(String, String)

在衍生類別中覆寫時,移至具有指定 LocalNameNamespaceURI 的屬性。

MoveToContent()

檢查目前節點是否為內容 (非空白字元文字、CDATAElementEndElementEntityReferenceEndEntity) 節點。 如果節點並非內容節點,讀取器會先跳至下一個內容節點或檔案結尾。 它會略過下列型別的節點:ProcessingInstructionDocumentTypeCommentWhitespaceSignificantWhitespace

MoveToContentAsync()

非同步檢查目前節點是否為內容節點。 如果節點並非內容節點,讀取器會先跳至下一個內容節點或檔案結尾。

MoveToElement()

在衍生類別中覆寫時,移至包含目前屬性節點的項目上。

MoveToFirstAttribute()

在衍生類別中覆寫時,移至第一個屬性。

MoveToNextAttribute()

在衍生類別中覆寫時,移至下一個屬性。

Read()

在衍生類別中覆寫時,從資料流讀取下一個節點。

ReadAsync()

非同步讀取資料流中的下一個節點。

ReadAttributeValue()

在衍生類別中覆寫時,將屬性值剖析成一或多個 TextEntityReferenceEndEntity 節點。

ReadContentAs(Type, IXmlNamespaceResolver)

以指定型别的物件形式讀取內容。

ReadContentAsAsync(Type, IXmlNamespaceResolver)

以非同步的方式讀取做為指定型别之物件的內容。

ReadContentAsBase64(Byte[], Int32, Int32)

讀取內容,並傳回 Base64 已解碼的二進位位元組。

ReadContentAsBase64Async(Byte[], Int32, Int32)

以非同步的方式讀取內容,並傳回 Base64 已解碼的二進位位元組。

ReadContentAsBinHex(Byte[], Int32, Int32)

讀取內容,並傳回 BinHex 已解碼的二進位位元組。

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

以非同步的方式讀取內容,並傳回 BinHex 的解碼二進位位元組。

ReadContentAsBoolean()

Boolean 的形式,讀取目前位置的文字內容。

ReadContentAsDateTime()

DateTime 物件的形式,讀取目前位置的文字內容。

ReadContentAsDateTimeOffset()

DateTimeOffset 物件的形式,讀取目前位置的文字內容。

ReadContentAsDecimal()

Decimal 物件的形式,讀取目前位置的文字內容。

ReadContentAsDouble()

以雙精確度浮點數的形式讀取目前位置的文字內容。

ReadContentAsFloat()

以單精確度浮點數的形式讀取目前位置的文字內容。

ReadContentAsInt()

以 32 位元帶正負號之整數的形式讀取目前位置的文字內容。

ReadContentAsLong()

以 64 位元帶正負號之整數的形式讀取目前位置的文字內容。

ReadContentAsObject()

Object 的形式,讀取目前位置的文字內容。

ReadContentAsObjectAsync()

以非同步方式與 Object 的形式,讀取目前位置的文字內容。

ReadContentAsString()

String 物件的形式,讀取目前位置的文字內容。

ReadContentAsStringAsync()

以非同步方式與 String 物件的形式,讀取目前位置的文字內容。

ReadElementContentAs(Type, IXmlNamespaceResolver)

以要求之型別的形式讀取項目內容。

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以要求之型別的形式讀取項目內容。

ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

以要求之型別的形式,非同步讀取項目內容。

ReadElementContentAsBase64(Byte[], Int32, Int32)

讀取項目,並將 Base64 內容解碼。

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

以非同步的方式讀取項目,並將 Base64 內容解碼。

ReadElementContentAsBinHex(Byte[], Int32, Int32)

讀取項目,並將 BinHex 內容解碼。

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

以非同步的方式讀取項目,並將 BinHex 內容解碼。

ReadElementContentAsBoolean()

Boolean 物件的形式,讀取目前項目並傳回內容。

ReadElementContentAsBoolean(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以 Boolean 物件的形式,讀取目前的項目並傳回內容。

ReadElementContentAsDateTime()

DateTime 物件的形式,讀取目前項目並傳回內容。

ReadElementContentAsDateTime(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以 DateTime 物件的形式,讀取目前的項目並傳回內容。

ReadElementContentAsDecimal()

Decimal 物件的形式,讀取目前項目並傳回內容。

ReadElementContentAsDecimal(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以 Decimal 物件的形式,讀取目前的項目並傳回內容。

ReadElementContentAsDouble()

以雙精確度浮點數的形式,讀取目前的項目並傳回內容。

ReadElementContentAsDouble(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以雙精確度浮點數的形式,讀取目前的項目並傳回內容。

ReadElementContentAsFloat()

以單精確度浮點數的形式,讀取目前的項目並傳回內容。

ReadElementContentAsFloat(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以單精確度浮點數的形式,讀取目前的項目並傳回內容。

ReadElementContentAsInt()

以 32 位元帶正負號之整數的形式,讀取目前的項目並傳回內容。

ReadElementContentAsInt(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以 32 位元帶正負號之整數的形式,讀取目前的項目並傳回內容。

ReadElementContentAsLong()

以 64 位元帶正負號之整數的形式讀取目前的元素並傳回內容。

ReadElementContentAsLong(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以 64 位元帶正負號之整數的形式讀取目前的元素並傳回內容。

ReadElementContentAsObject()

Object 的形式,讀取目前項目並傳回內容。

ReadElementContentAsObject(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以 Object 的形式,讀取目前的項目並傳回內容。

ReadElementContentAsObjectAsync()

以非同步方式與 Object 的形式,讀取目前項目並傳回內容。

ReadElementContentAsString()

String 物件的形式,讀取目前項目並傳回內容。

ReadElementContentAsString(String, String)

檢查指定的區域名稱和命名空間 URI 是否與目前的項目相符,然後以 String 物件的形式,讀取目前的項目並傳回內容。

ReadElementContentAsStringAsync()

以非同步方式與 String 物件的形式,讀取目前項目並傳回內容。

ReadElementString()

讀取純文字項目。 不過,我們建議您改用ReadElementContentAsString()方法相反地,因為它會提供較簡單的方式來處理這項作業。

ReadElementString(String)

檢查Name屬性找到的項目之前讀取純文字的項目符合指定的字串。 不過,我們建議您改用ReadElementContentAsString()方法相反地,因為它會提供較簡單的方式來處理這項作業。

ReadElementString(String, String)

檢查LocalNameNamespaceURI項目的屬性找到符合的指定的字串之前讀取純文字的項目。 不過,我們建議您改用ReadElementContentAsString(String, String)方法相反地,因為它會提供較簡單的方式來處理這項作業。

ReadEndElement()

檢查目前節點為結尾標記,並使讀取器前進至下一個節點。

ReadInnerXml()

在衍生類別中覆寫時,將所有的內容當做字串讀取,包括標記。

ReadInnerXmlAsync()

以字串形式非同步讀取所有內容,包括標記。

ReadOuterXml()

在衍生類別中覆寫時,讀取代表這個節點及其所有子節點的內容,包括標記。

ReadOuterXmlAsync()

非同步讀取表示這個節點及其所有子系的內容,包括標記。

ReadStartElement()

檢查以確定目前節點為項目,然後使讀取器前進至下一個節點。

ReadStartElement(String)

檢查目前的內容節點是否具有的項目指定Name並使讀取器前進至下一個節點。

ReadStartElement(String, String)

檢查目前的內容節點是否具有的項目指定LocalNameNamespaceURI並使讀取器前進至下一個節點。

ReadString()

在衍生類別中覆寫時,將項目或文字節點的內容當做字串讀取。 不過,我們建議您改用ReadElementContentAsString方法相反地,因為它會提供較簡單的方式來處理這項作業。

ReadSubtree()

傳回新XmlReader可以用來讀取目前的節點及其所有子系的執行個體。

ReadToDescendant(String)

往前推進XmlReader下一個子系的項目,具有指定限定名稱。

ReadToDescendant(String, String)

往前推進XmlReader下一個子系的項目,使用指定的區域名稱和命名空間 URI。

ReadToFollowing(String)

在找到具有指定限定名稱的項目之前讀取。

ReadToFollowing(String, String)

在找到具有指定區域名稱和命名空間 URI 的項目之前讀取。

ReadToNextSibling(String)

往前推進XmlReader指定限定名稱的下一個同層級項目。

ReadToNextSibling(String, String)

XmlReader 前移到下一個具有指定區域名稱和命名空間 URI 的同層級項目。

ReadValueChunk(Char[], Int32, Int32)

讀取 XML 文件中內嵌之大量文字資料流。

ReadValueChunkAsync(Char[], Int32, Int32)

以非同步的方式讀取 XML 文件中內嵌之大量文字資料流。

ResolveEntity()

當在衍生類別中覆寫時,會解析實體參考EntityReference節點。

Skip()

略過目前節點的子節點。

SkipAsync()

以非同步的方式略過目前節點的子節點。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

明確介面實作

IDisposable.Dispose()

如需這個成員的說明,請參閱 Dispose()

適用於

另請參閱