共用方式為


使用 XmlTextReader 讀取 XML 資料

XmlTextReader 類別是 XmlReader 的實作,而且會透過 XML 文字提供剖析器。 它強制使用 XML 必須格式正確。 它既不是驗證剖析器,也不是非驗證剖析器,因為它並未使用文件類型定義 (DTD) 或結構描述資訊。 它可以讀取在區塊中的文字,或是從資料流中讀取字元。

注意事項注意事項

在 .NET Framework 2.0 版 中,建議您使用 XmlReaderSettings 類別與 Create 方法來建立 XmlReader 執行個體。如此可讓您充分利用 .NET Framework 2.0 所推出的所有新功能。如需詳細資訊,請參閱建立 XML 讀取器

概觀

XmlTextReader 提供下列功能:

  • 強制使用 XML 必須格式正確。

  • 檢查 DTD 是否格式正確。 但它不會使用 DTD 進行驗證或加入預設屬性。 如果 EntityHandling 屬性設定為 ExpandEntities 或是在 EntityReference 節點上呼叫 ResolveEntity 方法,就會將 DTD 用於實體擴充。

  • EntityHandling 屬性設定為 ExpandCharEntities (這是預設值) 時,將未擴充的實體參考當做 EntityReference 傳回。 若未在 DTD 中定義實體參考,則除非您在節點上呼叫 ResolveEntity 方法,否則讀取器不會發生錯誤。

  • 提供一個可將新行與屬性值的 XML 正規化關閉的選項。 正規化預設為關閉。

  • 不會根據 DTD 或結構描述進行驗證。

  • 提供快速的 XML 剖析器,因為 XmlTextReader 不會因為驗證檢查作業而產生額外負荷。

XmlTextReader 可以從不同的輸入讀取資料,例如資料流物件、TextReader 與辨識本機檔案位置或網站的 URL。

XmlTextReader 會使用 XmlResolver 來尋找外部資源 (如 DTD),因此它可以檢查 DTD 以確認其格式是否正確。 如需 XmlResolver 的詳細資訊,請參閱使用 XmlResolver 解析資源

編碼宣告 <?xml version="1.0" encoding="ISO-8859-5"?> 含有可設定文件編碼的編碼屬性。 XmlTextReader 具有 Encoding 屬性,該屬性會傳回 XML 宣告的編碼屬性中所找到的字元編碼。 若找不到 encoding 屬性,文件的預設值會設為 UTF-8 或 UTF-16,視資料流的頭兩個位元組而定。

如果讀取外部資源,例如使用 DTD 來展開實體參考或是結構描述檔案,編碼會設定為外部參考中找到的編碼值。 如果外部參考中找不到編碼,預設值會設定為 UTF-8 或 UTF-16。 XmlTextReader 支援許多編碼,因此它會使用 Encoding 類別。 因此,該類別所支援的所有編碼,也都會受到 XmlTextReader 的支援。 唯一不受支援的編碼,是將 <?xml 序列對應至非 UTF-8 之其他位元組值的編碼,像是 UTF-7 和 EBCDIC。

請參閱

概念

使用 XmlReader 讀取 XML

其他資源

使用 XmlReader 類別