Dela via


Läsa XML-data med XPathDocument och XmlDocument

Det finns två sätt att läsa ett XML-dokument i System.Xml.XPath namnområdet. Det ena är att läsa ett XML-dokument med hjälp av den skrivskyddade XPathDocument klassen och det andra är att läsa ett XML-dokument med hjälp av den redigerbara XmlDocument klassen i System.Xml namnområdet.

Läsa XML-dokument med hjälp av XPathDocument-klassen

Klassen XPathDocument ger en snabb, skrivskyddad, minnesintern representation av ett XML-dokument med hjälp av XPath-datamodellen. Instanser av XPathDocument klassen skapas med någon av dess sex konstruktorer. Med dessa konstruktorer kan du läsa ett XML-dokument med hjälp av ett Stream, TextReadereller XmlReader -objekt, samt string sökvägen till en XML-fil.

I följande exempel visas hur du använder XPathDocument klassens string konstruktor för att läsa ett XML-dokument.

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

Läsa XML-dokument med hjälp av XmlDocument-klassen

Klassen XmlDocument är en redigerbar minnesintern representation av ett XML-dokument som implementerar W3C Document Object Model (DOM) Level 1 Core och Core DOM Level 2. Instanser av XmlDocument klassen skapas med någon av dess tre konstruktorer. Du kan skapa ett nytt, tomt XmlDocument objekt genom att anropa XmlDocument klasskonstruktorn utan parametrar. När du har anropat konstruktorn använder du Load metoden för att läsa in XML-data i det nya XmlDocument objektet från ett Stream, TextReadereller XmlReader -objekt, samt string sökvägen till en XML-fil.

I följande exempel visas hur du använder XmlDocument klasskonstruktorn utan parametrar och Load metoden för att läsa ett XML-dokument.

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

Fastställa kodningen av ett XML-dokument

Ett XmlReader objekt kan användas för att läsa ett XML-dokument och för att skapa XPathDocument och XmlDocument objekt som visas i föregående avsnitt. Ett objekt kan dock XmlReader läsa data som inte är kodade och som ett resultat inte ger någon kodningsinformation.

Klassen XmlTextReader ärver från XmlReader klassen, tillhandahåller kodningsinformation med dess Encoding egenskap och kan användas för att skapa ett XPathDocument objekt eller XmlDocument objekt.

Mer information om kodningsinformationen XmlTextReader som tillhandahålls av klassen Encoding finns i egenskapen i klassens XmlTextReader referensdokumentation.

Skapa XPathNavigator-objekt

När du har läst ett XML-dokument i antingen ett XPathDocument objekt eller XmlDocument ett objekt kan du skapa ett XPathNavigator objekt för att välja, utvärdera, navigera och i vissa fall redigera underliggande XML-data.

Både klasserna XPathDocument och XmlDocument implementerar förutom XmlNode klassen gränssnittet för IXPathNavigableSystem.Xml.XPath namnområdet. Därför tillhandahåller alla tre klasserna en CreateNavigator metod som returnerar ett XPathNavigator objekt.

Redigera XML-dokument med hjälp av XPathNavigator-klassen

Förutom att välja, utvärdera och navigera i XML-data XPathNavigator kan klassen användas för att redigera ett XML-dokument i vissa fall, baserat på det objekt som skapade det.

Klassen XPathDocument är skrivskyddad medan XmlDocument klassen är redigerbar och därför XPathNavigator kan objekt som skapats från ett XPathDocument objekt inte användas för att redigera ett XML-dokument medan de som skapats från ett XmlDocument objekt kan göra det. Klassen XPathDocument ska endast användas för att läsa ett XML-dokument. I de fall där du behöver redigera ett XML-dokument eller kräver åtkomst till de ytterligare funktioner som tillhandahålls av XmlDocument klassen, till exempel händelsehantering, XmlDocument bör klassen användas.

Egenskapen CanEdit för XPathNavigator klassen anger om ett XPathNavigator objekt kan redigera XML-data.

I följande tabell beskrivs värdet för CanEdit egenskapen för varje klass.

IXPathNavigable Genomförandet CanEdit Värde
XPathDocument false
XmlDocument true

Se även