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 klasse worden gemaakt met behulp van een van de XPathDocument 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 string de XPathDocument 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 Stream, TextReaderof XmlReader object in het nieuwe XmlDocument 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 objecten te maken en XmlDocument objecten te makenXPathDocument, 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 eigenschap in de XmlTextReader referentiedocumentatie voor klassen voor meer informatie over de coderingsgegevens die door de XmlTextReader klasse Encoding 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 als XmlDocument de XPathDocument klassen implementeren naast de XmlNode klasse 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. Als gevolg hiervan kunnen objecten die zijn gemaakt op basis van een XPathDocument object, XPathNavigator niet worden gebruikt om een XML-document te bewerken terwijl deze zijn gemaakt op basis van een XmlDocument object. 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 Uitvoering CanEdit Waarde
XPathDocument false
XmlDocument true

Zie ook