Wczytywanie danych XML przy użyciu klas XPathDocument i XmlDocument

Istnieją dwa sposoby odczytywania dokumentu XML w System.Xml.XPath przestrzeni nazw. Jednym z nich jest odczytywanie dokumentu XML przy użyciu klasy tylko XPathDocument do odczytu, a druga jest odczytywanie dokumentu XML przy użyciu edytowalnej XmlDocument klasy w System.Xml przestrzeni nazw.

Odczytywanie dokumentów XML przy użyciu klasy XPathDocument

Klasa XPathDocument zapewnia szybką, tylko do odczytu reprezentację dokumentu XML w pamięci przy użyciu modelu danych XPath. XPathDocument Wystąpienia klasy są tworzone przy użyciu jednego z sześciu konstruktorów. Te konstruktory umożliwiają odczytywanie dokumentu XML przy użyciu Streamobiektu , lubTextReaderXmlReader, a także string ścieżki do pliku XML.

Poniższy przykład ilustruje użycie XPathDocument konstruktora klasy do odczytania string dokumentu XML.

Dim document As XPathDocument = New XPathDocument("books.xml")  
XPathDocument document = new XPathDocument("books.xml");  

Odczytywanie dokumentów XML przy użyciu klasy XmlDocument

Klasa XmlDocument jest edytowalną reprezentacją w pamięci dokumentu XML implementowania modelu obiektów dokumentów W3C (DOM) Poziom 1 Core i Core DOM Level 2. XmlDocument Wystąpienia klasy są tworzone przy użyciu jednego z trzech konstruktorów. Możesz utworzyć nowy, pusty XmlDocument obiekt, wywołując XmlDocument konstruktor klasy bez parametrów. Po wywołaniu konstruktora użyj Load metody , aby załadować dane XML do nowego XmlDocument obiektu z Streamobiektu , TextReaderlub XmlReader , a także string ścieżkę do pliku XML.

Poniższy przykład ilustruje użycie konstruktora XmlDocument klasy bez parametrów i Load metody odczytywania dokumentu XML.

Dim document As XmlDocument = New XmlDocument()  
document.Load("books.xml")  
XmlDocument document = new XmlDocument();  
document.Load("books.xml");  

Określanie kodowania dokumentu XML

Obiekt XmlReader może służyć do odczytywania dokumentu XML oraz tworzenia XPathDocument obiektów i XmlDocument , jak pokazano w poprzednich sekcjach. XmlReader Jednak obiekt może odczytywać dane, które nie są kodowane, a w rezultacie nie udostępnia żadnych informacji o kodowaniu.

Klasa XmlTextReader dziedziczy z XmlReader klasy, dostarcza informacje o kodowaniu przy użyciu jego Encoding właściwości i może służyć do tworzenia XPathDocument obiektu lub XmlDocument obiektu.

Aby uzyskać więcej informacji o kodowaniu dostarczonych przez klasę XmlTextReader , zobacz Encoding właściwość w dokumentacji referencyjnej XmlTextReader klasy.

Tworzenie obiektów XPathNavigator

Po przeczytaniu dokumentu XML do XPathDocument obiektu lub XmlDocument można utworzyć XPathNavigator obiekt, aby wybrać, ocenić, nawigować, a w niektórych przypadkach edytować bazowe dane XML.

XPathDocument Zarówno klasy, jak iXmlDocument, oprócz XmlNode klasy, implementują IXPathNavigable interfejs System.Xml.XPath przestrzeni nazw. W rezultacie wszystkie trzy klasy zapewniają metodę zwracającą CreateNavigatorXPathNavigator obiekt.

Edytowanie dokumentów XML przy użyciu klasy XPathNavigator

Oprócz wybierania, oceniania i nawigowania po danych XPathNavigator XML, klasa może służyć do edytowania dokumentu XML w niektórych przypadkach na podstawie obiektu, który go utworzył.

Klasa XPathDocument jest tylko do odczytu, XPathNavigator gdy XmlDocument klasa jest edytowalna i w rezultacie obiekty utworzone na podstawie XPathDocument obiektu nie mogą być używane do edytowania dokumentu XML, podczas gdy obiekty utworzone na podstawie XmlDocument obiektu mogą. Klasa XPathDocument powinna służyć tylko do odczytywania dokumentu XML. W przypadkach, gdy trzeba edytować dokument XML lub wymagać dostępu do dodatkowych funkcji udostępnianych przez XmlDocument klasę, takich jak obsługa zdarzeń, XmlDocument należy użyć klasy.

Właściwość CanEditXPathNavigator klasy określa, czy XPathNavigator obiekt może edytować dane XML.

W poniższej tabeli opisano wartość CanEdit właściwości dla każdej klasy.

IXPathNavigable Implementacji CanEdit Wartość
XPathDocument false
XmlDocument true

Zobacz też