Delen via


XML-gegevens lezen met XPathDocument en XmlDocument

Er zijn twee manieren om een XML-document in de System.Xml.XPath naamruimte te lezen. Het ene is het lezen van een XML-document met behulp van de alleen-lezen XPathDocument klasse en de andere is het lezen van een XML-document met behulp van de bewerkbare XmlDocument klasse in de System.Xml naamruimte.

XML-documenten lezen met de XPathDocument-klasse

De XPathDocument klasse biedt een snelle, alleen-lezen, in-memory weergave van een XML-document met behulp van het XPath-gegevensmodel. Exemplaren van de XPathDocument-klasse worden gemaakt met behulp van een van zijn zes constructors. Met deze constructors kunt u een XML-document lezen met behulp van een Stream, TextReaderof XmlReader object, evenals het string pad naar een XML-bestand.

In het volgende voorbeeld ziet u hoe u de constructor van XPathDocument de string klasse gebruikt om een XML-document te lezen.

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

XML-documenten lezen met de XmlDocument-klasse

De XmlDocument klasse is een bewerkbare in-memory weergave van een XML-document dat W3C Document Object Model (DOM) Level 1 Core en Core DOM Level 2 implementeert. Exemplaren van de XmlDocument klasse worden gemaakt met behulp van een van de drie constructors. U kunt een nieuw, leeg XmlDocument object maken door de XmlDocument klasseconstructor zonder parameters aan te roepen. Nadat u de constructor hebt aangeroepen, gebruikt u de Load methode om XML-gegevens vanuit een XmlDocument, Streamof TextReader object in het nieuwe XmlReader object te laden, evenals het string pad naar een XML-bestand.

Het volgende voorbeeld illustreert het gebruik van de XmlDocument klasseconstructor zonder parameters en de methode voor het Load lezen van een XML-document.

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

De codering van een XML-document bepalen

Een XmlReader object kan worden gebruikt om een XML-document te lezen en om XPathDocument- en XmlDocument-objecten te maken, zoals wordt weergegeven in de vorige secties. Een XmlReader object kan echter gegevens lezen die niet zijn gecodeerd en daardoor geen coderingsgegevens bevatten.

De XmlTextReader klasse neemt over van de XmlReader klasse, biedt coderingsgegevens met behulp van Encoding de eigenschap en kan worden gebruikt om een XPathDocument object of XmlDocument object te maken.

Zie de XmlTextReader eigenschap in de referentiedocumentatie van de Encoding klasse voor meer informatie over de coderingsgegevens die door de XmlTextReader klasse worden verstrekt.

XPathNavigator-objecten maken

Nadat u een XML-document hebt gelezen in een XPathDocument of XmlDocument object, kunt u een XPathNavigator object maken om de onderliggende XML-gegevens te selecteren, te evalueren, te navigeren en in sommige gevallen te bewerken.

Zowel de XPathDocument als de XmlDocument klassen, naast de XmlNode klasse, implementeren de IXPathNavigable interface van de System.Xml.XPath naamruimte. Hierdoor bieden alle drie de klassen een CreateNavigator methode die een XPathNavigator object retourneert.

XML-documenten bewerken met de XPathNavigator-klasse

Naast het selecteren, evalueren en navigeren van XML-gegevens, kan de XPathNavigator klasse worden gebruikt om een XML-document in sommige gevallen te bewerken, op basis van het object dat het heeft gemaakt.

De XPathDocument klasse heeft het kenmerk Alleen-lezen terwijl de XmlDocument klasse kan worden bewerkt, en als gevolg hiervan kunnen XPathNavigator objecten die zijn gemaakt op basis van een XPathDocument object niet worden gebruikt om een XML-document te bewerken, terwijl die zijn gemaakt op basis van een XmlDocument object dat wel kunnen. De XPathDocument klasse mag alleen worden gebruikt om een XML-document te lezen. In gevallen waarin u een XML-document moet bewerken of toegang nodig hebt tot de aanvullende functionaliteit van de XmlDocument klasse, zoals gebeurtenisafhandeling, moet de XmlDocument klasse worden gebruikt.

De CanEdit eigenschap van de XPathNavigator klasse geeft aan of een XPathNavigator object XML-gegevens kan bewerken.

In de volgende tabel wordt de waarde van de CanEdit eigenschap voor elke klasse beschreven.

IXPathNavigable Implementatie CanEdit waarde
XPathDocument false
XmlDocument true

Zie ook