共用方式為


建立 XML 讀取器

更新: November 2007

使用 Create 方法,可建立 XmlReader 執行個體。XmlReaderSettings 類別用於指定要在 XmlReader 物件上啟用的一組功能。

重要事項:

雖然 Microsoft .NET Framework 包含 XmlReader 類別 (如 XmlTextReaderXmlNodeReaderXmlValidatingReader 類別) 的具體實作,但仍建議您在 .NET Framework 2.0 版中,使用 Create 方法來建立 XmlReader 執行個體。

使用 XmlReaderSettings 類別上的屬性,可啟用或停用功能。然後,會將 XmlReaderSettings 物件傳遞至 Create 方法。

藉由使用 Create 方法及 XmlReaderSettings 類別,您可取得下列好處:

  • 您可以指定在所建立的 XmlReader 物件上要支援的功能。

  • 可以重複使用 XmlReaderSettings 類別來建立多個讀取器物件。您可以使用相同設定來建立具有相同功能的多個讀取器。或者,您也可以修改 XmlReaderSettings 物件,並建立具有一組不同功能的新讀取器。

  • 您可將功能加入至現有讀取器。Create 方法可以接受其他 XmlReader 物件。基礎 XmlReader 物件可以是使用者定義的讀取器或 XmlTextReader 物件,也可以是要加入其他功能的其他 XmlReader 執行個體。

  • 請充分利用加入至 .NET Framework 2.0 版之 XmlReader 類別的所有新功能。某些功能僅可在由 Create 方法所建立的 XmlReader 物件上使用,例如更好的一致性檢查以及符合 XML 1.0 版建議事項的規範。

下表列出了 XmlReaderSettings 類別上的預設屬性設定。

屬性

預設值

CheckCharacters

true

ConformanceLevel

ConformanceLevel.Document

IgnoreComments

false

IgnoreProcessingInstructions

false

IgnoreWhitespace

false

LineNumberOffset

0.

LinePositionOffset

0

NameTable

null

ProhibitDtd

true

Schemas

空白的 XmlSchemaSet 物件

ValidationFlags

已啟用的 ProcessIdentityConstraints

ValidationType

ValidationType.None

XmlResolver

新的 XmlUrlResolver 物件

XmlReader 案例

下表說明一些通用案例,以及 XmlReaderSettings 類別上要套用的設定。

案例

XmlReaderSettings

要求資料必須是格式正確的 XML 文件。

ConformanceLevel = ConformanceLevel.Document

要求資料必須是格式正確的 XML 剖析實體。

ConformanceLevel = ConformanceLevel.Fragment

需要根據 DTD 來驗證資料。

ProhibitDtd = false

ValidationType = ValidationType.DTD

需要根據 XML 結構描述來驗證資料。

ValidationType = ValidationType.Schema

Schemas = 用於驗證的 XmlSchemaSet

需要根據內嵌 XML 結構描述來驗證資料。

ValidationType = ValidationType.Schema

ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema

需要型別支援。

ValidationType = ValidationType.Schema

Schemas = 要使用的 XmlSchemaSet

有些特殊案例可能要求使用不是由 Create 方法建立的 XmlReader 實作。

注意事項:

在 .NET Framework 2.0 版中,XmlValidatingReader 類別已過時。建議您考慮移轉至 XML 結構描述,並使用由 Create 方法傳回的 XmlReader 物件進行驗證。

  • 若要從 XmlNode 物件讀取 XML 資料,請使用 XmlNodeReader 類別。

  • 如果按照要求必須展開實體 (Create 方法所建立的讀取器展開所有的實體),或者您不想將文字內容正規化,請使用 XmlTextReader 類別。

  • 如果不想傳回預設屬性,請使用 XmlTextReader 類別。

具現化 XmlReader 物件

Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.IgnoreWhitespace = true
settings.IgnoreComments = true
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("books.xml", settings);

將讀取器執行個體包裝至其他讀取器內

Dim txtReader As XmlTextReader = New XmlTextReader("bookOrder.xml")
Dim settings As New XmlReaderSettings()
settings.Schemas.Add("urn:po-schema", "PO.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create(txtReader, settings)
XmlTextReader txtReader = new XmlTextReader("bookOrder.xml");
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("urn:po-schema", "PO.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(txtReader, settings);

鏈結讀取器以加入其他設定

Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.DTD
Dim inner As XmlReader = XmlReader.Create("book.xml", settings) ' DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd")
settings.ValidationType = ValidationType.Schema
Dim outer As XmlReader = XmlReader.Create(inner, settings)  ' XML Schema Validation
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.DTD;
XmlReader inner = XmlReader.Create("book.xml", settings); // DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader outer = XmlReader.Create(inner, settings);  // XML Schema Validation

請參閱

概念

使用 XmlReader 讀取 XML