Udostępnij za pomocą


Odczytywanie danych XML przy użyciu elementów 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 XPathDocument tylko do odczytu, a drugim jest odczytywanie dokumentu XML przy użyciu klasy XmlDocument edytowalnej w przestrzeni nazw System.Xml.

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. Wystąpienia klasy XPathDocument są tworzone przy użyciu jednego z sześciu konstruktorów. Te konstruktory umożliwiają odczytywanie dokumentu XML przy użyciu obiektu Stream, obiektu TextReader lub obiektu XmlReader, a także ścieżki string 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, która implementuje model obiektów dokumentów W3C (DOM) Core Poziom 1 i Core DOM Poziom 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, które zapewnia klasa XmlTextReader, zobacz właściwość Encoding w dokumentacji referencyjnej klasy XmlTextReader.

Tworzenie obiektów XPathNavigator

Po wczytaniu dokumentu XML do obiektu XPathDocument lub XmlDocument, można utworzyć obiekt XPathNavigator, aby wybierać, oceniać, nawigować i w niektórych przypadkach edytować dane XML.

Zarówno XPathDocument, jak i XmlDocument, oprócz klasy XmlNode, implementują interfejs IXPathNavigable z przestrzeni nazw System.Xml.XPath. W rezultacie wszystkie trzy klasy udostępniają metodę zwracającą obiekt CreateNavigator.

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, podczas gdy klasa XmlDocument jest edytowalna, a w rezultacie obiekty utworzone na podstawie obiektu XPathNavigator nie mogą być używane do edytowania dokumentu XML, podczas gdy obiekty utworzone na podstawie obiektu XPathDocument mogą. Klasa XPathDocument powinna służyć tylko do odczytywania dokumentu XML. W sytuacjach, gdy trzeba edytować dokument XML lub uzyskać dostęp do dodatkowych funkcji oferowanych przez klasę XmlDocument, takich jak obsługa zdarzeń, należy użyć klasy XmlDocument.

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 Implementacja wartość CanEdit
XPathDocument false
XmlDocument true

Zobacz także