Partager via


Lecture de données XML à l’aide de XPathDocument et xmlDocument

Il existe deux façons de lire un document XML dans l’espace System.Xml.XPath de noms. L’un consiste à lire un document XML à l’aide de la classe en lecture seule XPathDocument et l’autre consiste à lire un document XML à l’aide de la classe modifiable XmlDocument dans l’espace System.Xml de noms.

Lecture de documents XML à l’aide de la classe XPathDocument

La XPathDocument classe fournit une représentation rapide en lecture seule et en mémoire d’un document XML à l’aide du modèle de données XPath. Les instances de la XPathDocument classe sont créées à l’aide de l’un de ses six constructeurs. Ces constructeurs vous permettent de lire un document XML à l’aide d’un , ou XmlReaderTextReaderd’un Streamobjet, ainsi que le string chemin d’accès à un fichier XML.

L’exemple suivant illustre l’utilisation du constructeur de string la XPathDocument classe pour lire un document XML.

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

Lecture de documents XML à l’aide de la classe XmlDocument

La XmlDocument classe est une représentation en mémoire modifiable d’un document XML implémentant le modèle dom (Document Object Model) de niveau 1 (DOM) de niveau 1 et le niveau DOM principal 2. Les instances de la XmlDocument classe sont créées à l’aide de l’un de ses trois constructeurs. Vous pouvez créer un objet vide XmlDocument en appelant le XmlDocument constructeur de classe sans paramètres. Après avoir appelé le constructeur, utilisez la Load méthode pour charger des données XML dans le nouvel XmlDocument objet à partir d’un objet, TextReaderou XmlReader d’un Streamobjet, ainsi que le string chemin d’accès à un fichier XML.

L’exemple suivant illustre l’utilisation du XmlDocument constructeur de classe sans paramètres et de la Load méthode pour lire un document XML.

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

Détermination de l’encodage d’un document XML

Un XmlReader objet peut être utilisé pour lire un document XML et créer et XmlDocument des XPathDocument objets, comme indiqué dans les sections précédentes. Toutefois, un XmlReader objet peut lire des données qui ne sont pas encodées et, par conséquent, ne fournissent aucune information d’encodage.

La XmlTextReader classe hérite de la XmlReader classe, fournit des informations d’encodage à l’aide de sa Encoding propriété et peut être utilisée pour créer un objet ou XmlDocument un XPathDocument objet.

Pour plus d’informations sur les informations d’encodage fournies par la XmlTextReader classe, consultez la Encoding propriété dans la documentation de référence de XmlTextReader classe.

Création d’objets XPathNavigator

Une fois que vous avez lu un document XML dans un ou XmlDocument un XPathDocument objet, vous pouvez créer un XPathNavigator objet pour sélectionner, évaluer, naviguer et, dans certains cas, modifier les données XML sous-jacentes.

Les classes et XmlDocument les XPathDocument classes, en plus de la XmlNode classe, implémentent l’interface IXPathNavigable de l’espace System.Xml.XPath de noms. Par conséquent, les trois classes fournissent une CreateNavigator méthode qui retourne un XPathNavigator objet.

Modification de documents XML à l’aide de la classe XPathNavigator

Outre la sélection, l’évaluation et la navigation dans les données XML, la XPathNavigator classe peut être utilisée pour modifier un document XML dans certains cas, en fonction de l’objet qui l’a créé.

La XPathDocument classe est en lecture seule alors que la XmlDocument classe est modifiable et, par conséquent, XPathNavigator les objets créés à partir d’un XPathDocument objet ne peuvent pas être utilisés pour modifier un document XML tandis que ceux créés à partir d’un XmlDocument objet peuvent. La XPathDocument classe doit être utilisée pour lire un document XML uniquement. Dans les cas où vous devez modifier un document XML ou exiger l’accès aux fonctionnalités supplémentaires fournies par la classe, telles que la XmlDocument gestion des événements, la XmlDocument classe doit être utilisée.

La CanEdit propriété de la XPathNavigator classe spécifie si un XPathNavigator objet peut modifier des données XML.

Le tableau suivant décrit la valeur de la CanEdit propriété pour chaque classe.

IXPathNavigable Implémentation Valeur CanEdit
XPathDocument false
XmlDocument true

Voir aussi