Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour lire les données XML à partir d'un fichier à l'aide de Visual C#

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 307548
Pour obtenir une version Microsoft Visual Basic .NET de cet article, reportez-vous à la section. 301225.

Cet article fait référence à l'espace de noms bibliothèque de classes Microsoft.NET Framework suivant :
  • System.Xml
Résumé
Cet article décrit comment utiliser la classe XmlTextReader pour lire le langage de balisage Extensible (XML) à partir d'un fichier. XmlTextReader fournit un analyse et une création de jetons directes de XML et implémente la spécification XML 1.0, ainsi que les espaces de noms, dans la spécification XML du World Wide Web Consortium (W3C). Cet article fournit un accès en flux rapide et « tokenisé » à XML, plutôt que d'utiliser un modèle d'objet tel que l'objet modèle DOM (Document XML).

Configuration requise

La liste suivante met en évidence le matériel recommandé, les logiciels, l'infrastructure réseau et service packs dont vous avez besoin :
  • Microsoft Visual Studio 2005 ou Microsoft Visual Studio .NET
Cet article suppose que vous maîtrisez les sujets suivants :
  • Terminologie XML
  • Création et lecture d'un fichier XML

Comment faire pour lire les données XML à partir d'un fichier

Cet exemple utilise un fichier nommé Books.xml. Vous pouvez créer votre propre fichier Books.xml ou utiliser l'exemple de fichier qui est inclus avec les Démarrages rapides du Kit de développement logiciel (SDK) .NET dans le dossier suivant :
\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
Vous devez copier Books.xml dans le dossier \Bin\Debug, qui se trouve sous le dossier dans lequel vous créez ce projet. Books.XML est également disponible pour téléchargement. Reportez-vous à la "Référencessection « l'emplacement de téléchargement.
  1. Démarrez Visual Studio 2005 ou Visual Studio .NET.
  2. Créez une nouvelle Application de Console Visual C#. Vous passez directement à la "Listing complet du code"section ou suivre les étapes ci-dessous pour construire l'application.
  3. Assurez-vous que le projet contienne une référence à l'assembly System.Xml.dll .
  4. Spécifiez la directive Using sur l'espace de noms System.Xml afin que vous ne soyez pas obligé de qualifier des déclarations XmlTextReader ultérieurement dans votre code. Vous devez utiliser la directive using avant toute autre déclaration.
    using System.Xml;					
  5. Créez une instance d'un objet XmlTextReader et ajoutez-y le fichier XML. En général, la classe XmlTextReader est utilisée si vous avez besoin accéder aux données XML en tant que données brutes sans la charge d'un modèle DOM ; Par conséquent, la classe XmlTextReader fournit un mécanisme de lecture XML plus rapide. La classe XmlTextReader possède différents constructeurs pour spécifier l'emplacement des données XML. Le code suivant crée une instance de la classe XmlTextReader et charge le fichier Books.xml. Ajoutez le code suivant à la procédure principale de Class1.
    XmlTextReader reader = new XmlTextReader ("books.xml");					
  6. Parcourez les données XML. (Notez que cette étape présente une boucle extérieure « while » et que les deux étapes suivantes montrent comment utiliser cette boucle pour lire le code XML). Après avoir créé l'objet XmlTextReader , utilisez la méthode Read pour lire les données XML. La méthode Read continue de parcourir le fichier XML dans l'ordre jusqu'à ce qu'elle atteigne la fin du fichier, point auquel la méthode Read renvoie la valeur « False ».
    while (reader.Read()) {    // Do some work here on the data.	Console.WriteLine(reader.Name);}Console.ReadLine();					
  7. Inspectez les nœuds. Pour traiter les données XML, chaque enregistrement possède un type de nœud qui peut être déterminé à partir de la propriété NodeType . Les propriétés Name et Value renvoient le nom du nœud (les noms d'élément et d'attribut) et la valeur (le texte du nœud) du nœud en cours (ou enregistrement). L'énumération NodeType détermine le type de nœud. L'exemple de code suivant affiche le nom des éléments et le type de document. Notez que cet exemple ignore les attributs de l'élément.
    while (reader.Read()) {    switch (reader.NodeType)     {        case XmlNodeType.Element: // The node is an element.            Console.Write("<" + reader.Name);   Console.WriteLine(">");            break;  case XmlNodeType.Text: //Display the text in each element.            Console.WriteLine (reader.Value);            break;  case XmlNodeType. EndElement: //Display the end of the element.            Console.Write("</" + reader.Name);   Console.WriteLine(">");            break;    }}					
  8. Inspectez les attributs. Les types de nœuds d'élément peuvent inclure une liste de nœuds d'attribut qui leur sont associés. La méthode MovetoNextAttribute passe séquentiellement par chaque attribut dans l'élément. Utilisez la propriété HasAttributes pour vérifier si le nœud possède des attributs. La propriété AttributeCount renvoie le nombre d'attributs du nœud actuel.
    while (reader.Read()) {       switch (reader.NodeType)        {           case XmlNodeType.Element: // The node is an element.               Console.Write("<" + reader.Name);               while (reader.MoveToNextAttribute()) // Read the attributes.                   Console.Write(" " + reader.Name + "='" + reader.Value + "'");      Console.WriteLine(">");               break;     case XmlNodeType.Text: //Display the text in each element.               Console.WriteLine (reader.Value);               break;     case XmlNodeType. EndElement: //Display the end of the element.               Console.Write("</" + reader.Name);      Console.WriteLine(">");               break;       }   }					
  9. Enregistrez et fermez votre projet.

Listing complet du code

using System;using System.Xml;namespace ReadXMLfromFile{    /// <summary>    /// Summary description for Class1.    /// </summary>    class Class1    {        static void Main(string[] args)        {            XmlTextReader reader = new XmlTextReader ("books.xml");            while (reader.Read())             {                switch (reader.NodeType)                 {                    case XmlNodeType.Element: // The node is an element.                        Console.Write("<" + reader.Name);                        Console.WriteLine(">");                        break;                    case XmlNodeType.Text: //Display the text in each element.                        Console.WriteLine (reader.Value);                        break;                    case XmlNodeType.EndElement: //Display the end of the element.                        Console.Write("</" + reader.Name);                        Console.WriteLine(">");                        break;                }            }            Console.ReadLine();        }    }}				

Exemple de sortie

<bookstore><book><title>The Autobiography of Benjamin Franklin</title><author><first-name>Benjamin</first-name><last-name>Franklin</last-name></author><price>8.99</price></book><book><title>The Confidence Man</title><author><first-name>Herman</first-name><last-name>Melville</last-name></author><price>11.99</price></book><book><title>The Gorgias</title><author><name>Plato</name></author><price>9.99</price></book></bookstore>				

Résolution des problèmes

Lorsque vous testez le code, vous pouvez recevoir le message d'erreur exception suivant : Exception non gérée : System.Xml.XmlException : déclaration XML inattendue. La déclaration XML doit être le premier nœud dans le document, et aucun caractère d'espace blanc n'est autorisés à comparaître devant lui.

Informations supplémentaires : erreur système. L'erreur d'exception se produit sur la ligne de code suivante : alors que
(reader.Read())
L'erreur d'exception est provoquée par une instruction de traitement non valide. Par exemple, l'instruction de traitement peut contenir des espaces superflus. Voici un exemple d'une instruction de traitement non valide :
<?xml version='1.0' ?>
Cette balise xml comporte un espace avant le '<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the=""></’>

RÉFÉRENCES

Le fichier suivant est disponible en téléchargement à partir du centre de téléchargement Microsoft :
Pour plus d'informations sur les classes XML du.NET Framework et C#, visitez le site Web de Microsoft Developer Network (MSDN) à l'adresse suivante :Pour plus d'informations sur la classe XmlReader , reportez-vous au site Web MSDN suivant :Pour plus d'informations sur la façon d'utiliser XmlReader pour lire des données XML, visitez les sites Web MSDN suivants :

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 307548 - Dernière mise à jour : 02/08/2014 02:26:00 - Révision : 4.0

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Initiation

  • kbdownload kbhowtomaster kbmt KB307548 KbMtfr
Commentaires
dChild(m);