從讀取器載入資料

更新: November 2007

使用 Load 方法及 XmlReader 的參數載入 XML 文件所發生的行為,與從其他格式載入資料的行為相比會有所不同。如果讀取器處於其初始狀態,則 Load 會使用讀取器的整個內容,並利用讀取器中的所有資料建置 XML 文件物件模型 (DOM)。

如果已將讀取器置於文件中某處的節點上,而且隨後將讀取器傳遞至 Load 方法,則 Load 會嘗試將目前節點及其所有同層級節點 (直到關閉目前深度的結束標記) 讀取至記憶體。嘗試進行的 Load 是否能夠成功,取決於嘗試載入時讀取器所在的節點,因為 Load 會驗證來自讀取器的 XML 格式是否正確。如果 XML 的格式不正確,則 Load 會擲回例外狀況。例如,下列節點集包含兩個根層級的項目,XML 的格式不正確,並且 Load 會擲回例外狀況。

  • Comment 節點之後依次跟隨 Element 節點、Element 節點及 EndElement 節點。

由於缺少根層級的項目,因此下列節點集會建立不完整的 DOM。

  • Comment 節點之後依次跟隨 ProcessingInstruction 節點、Comment 節點及 EndElement 節點。

如此就不會擲回例外狀況,而且會載入資料。您可以將根項目加入至這些節點的最上層,並建立可正確儲存且格式正確的 XML。

如果將讀取器置於對文件之根層級而言是無效的分葉節點 (例如,泛空白字元或屬性節點) 上,則讀取器會繼續讀取,直到將其置於可用於根層級的節點上。此時文件會開始載入。

依預設,Load 不會使用文件類型定義 (DTD) 或結構描述驗證,來驗證 XML 是否有效。它只會驗證 XML 的格式是否正確。為了執行驗證,您需要使用 XmlReaderSettings 類別來建立 XmlReaderXmlReader 類別可以使用 DTD 或結構描述定義語言 (XSD) 結構描述來強制執行驗證。XmlReaderSettings 類別上的 ValidationType 屬性可以決定 XmlReader 執行個體是否能夠強制執行驗證。如需使用 XmlReader 驗證 XML 資料的詳細資訊,請參閱 使用 XmlReader 驗證 XML 資料 主題。

請參閱

概念

XML 文件物件模型 (DOM)