有兩種方式可以在命名空間中 System.Xml.XPath 讀取 XML 檔。 其中一個是使用唯讀XPathDocument類別讀取 XML 檔,另一個是使用命名空間中的XmlDocument可System.Xml編輯類別讀取 XML 檔。
使用 XPathDocument 類別讀取 XML 檔
類別XPathDocument 使用 XPath 數據模型,提供快速、只讀的 XML 檔記憶體表示。 類別的 XPathDocument 實例是使用其六個建構函式的其中一個來建立。 這些建構函式可讓您使用 Stream、 TextReader或 XmlReader 物件以及 string
XML 檔案的路徑來讀取 XML 檔。
下列範例說明如何使用 XPathDocument 類別的 string
建構函式來讀取 XML 檔。
Dim document As XPathDocument = New XPathDocument("books.xml")
XPathDocument document = new XPathDocument("books.xml");
使用 XmlDocument 類別讀取 XML 檔
類別 XmlDocument 是實作 W3C 檔案物件模型 #1 核心和核心 DOM 層級 2 之 XML 檔的可編輯記憶體內表示法。 類別的 XmlDocument 實例是使用其三個建構函式的其中一個來建立。 您可以呼叫不含參數的類別建構函式,XmlDocument以建立新的空白XmlDocument物件。 呼叫建構函式之後,請使用 Load 方法,從 XmlDocument、Stream 或 TextReader 物件,以及 XML 檔案的 XmlReader 路徑,將 XML 數據載入新的 string
物件。
下列範例說明如何使用 XmlDocument 不含參數的類別建構函式,以及 Load 讀取 XML 檔的方法。
Dim document As XmlDocument = New XmlDocument()
document.Load("books.xml")
XmlDocument document = new XmlDocument();
document.Load("books.xml");
判斷 XML 檔的編碼方式
XmlReader對象可用來讀取 XML 檔,以及建立 XPathDocument 和 XmlDocument 物件,如前幾節所示。 不過, XmlReader 物件可能會讀取未編碼的數據,因此不會提供任何編碼資訊。
類別 XmlTextReader 繼承自 XmlReader 類別、使用其 Encoding 屬性提供編碼資訊,而且可用來建立 XPathDocument 物件或 XmlDocument 物件。
如需了解由 XmlTextReader 類別提供的編碼訊息之詳細資訊,請參閱 Encoding 屬性在 XmlTextReader 類別參考文件中的說明。
建立 XPathNavigator 物件
將 XML 檔讀入 XPathDocument 或 XmlDocument 物件之後,您可以建立 XPathNavigator 物件來選取、評估、巡覽,在某些情況下編輯基礎 XML 數據。
XPathDocument類別和XmlDocument類別,以及XmlNode類別,都實作IXPathNavigable命名空間的System.Xml.XPath介面。 因此,這三個類別都會提供傳 CreateNavigator 回 XPathNavigator 物件的方法。
使用 XPathNavigator 類別編輯 XML 檔
除了選取、評估及巡覽 XML 數據之外, XPathNavigator 類別也可用來根據建立 XML 的檔來編輯 XML 檔。
類別 XPathDocument 是只讀的,而類別 XmlDocument 是可編輯的。因此,從 XPathNavigator 物件建立的 XPathDocument 物件不能用來編輯 XML 文件,而從 XmlDocument 物件建立的物件則可以。 類別 XPathDocument 應該只用來讀取 XML 檔。 如果您需要編輯 XML 檔,或需要存取 類別所提供的 XmlDocument 其他功能,例如事件處理, XmlDocument 則應該使用 類別。
類別 CanEdit 的 XPathNavigator 屬性會指定物件是否可以 XPathNavigator 編輯 XML 資料。
下表描述每個類別的 CanEdit 屬性值。
IXPathNavigable 實施 | CanEdit 值 |
---|---|
XPathDocument | false |
XmlDocument | true |