C# Lire et analyser un fichier XML

Minahil Noor 16 février 2024
C# Lire et analyser un fichier XML

En C#, l’espace de noms System.Xml est utilisé pour traiter les fichiers XML. Il possède différentes classes et méthodes pour traiter les fichiers XML. Nous pouvons lire, analyser et écrire un fichier XML en utilisant cet espace de noms.

Dans cet article, nous allons discuter des différentes méthodes qui sont utilisées pour lire et analyser un fichier XML.

Programme C# pour lire et analyser un fichier XML en utilisant la classe XmlReader

La classe XmlReader en C# offre un moyen efficace d’accéder aux données XML. La méthode [XmlReader.Read() lit le premier noeud du fichier XML et lit ensuite le fichier entier en utilisant une boucle while.

La syntaxe correcte pour utiliser cette méthode est la suivante:

XmlReader VariableName = XmlReader.Create(@"filepath");

while (reader.Read()) {
  // Action to perform repeatidly
}

Le fichier XML que nous avons lu et analysé dans notre programme est le suivant. Copiez et collez ce code dans un nouveau fichier texte et enregistrez-le sous le nom .xml pour utiliser ce fichier pour l’exécution du programme donné ci-dessous.

<?xml version="1.0" encoding="utf-8"?>  
<Students>  
 <Student>  
  </Student> 
 <Student>  
    <Name>Olivia</Name>  
    <Grade>A</Grade>  
  </Student>  
  <Student>  
    <Name>Laura</Name>  
    <Grade>A+</Grade>  
  </Student>  
  <Student>  
    <Name>Ben</Name>  
    <Grade>A-</Grade>  
  </Student>  
  <Student>  
    <Name>Henry</Name>  
    <Grade>B</Grade>  
  </Student>  
  <Student>  
    <Name>Monica</Name>  
    <Grade>B</Grade>  
  </Student>  
</Students> 

Exemple de code:

using System;
using System.Xml;

namespace XMLReadAndParse {
  class XMLReadandParse {
    static void Main(string[] args) {
      // Start with XmlReader object
      // here, we try to setup Stream between the XML file nad xmlReader
      using (XmlReader reader = XmlReader.Create(@"d:\Example.xml")) {
        while (reader.Read()) {
          if (reader.IsStartElement()) {
            // return only when you have START tag
            switch (reader.Name.ToString()) {
              case "Name":
                Console.WriteLine("The Name of the Student is " + reader.ReadString());
                break;
              case "Grade":
                Console.WriteLine("The Grade of the Student is " + reader.ReadString());
                break;
            }
          }
          Console.WriteLine("");
        }
      }
      Console.ReadKey();
    }
  }
}

Ici, nous avons créé un objet de XmlReader et ensuite créé un flux de lecture du fichier XML donné en utilisant la méthode Create().

Ensuite, nous avons utilisé la méthode XmlReader.Read() pour lire le fichier XML. Cette méthode retourne une valeur bool qui indique si le flux créé contient ou non les instructions XML.

Ensuite, nous avons vérifié s’il y a un élément de départ en utilisant la méthode XmlReader.IsStartElement(). Comme nous avons deux champs d’éléments dans nos données XML, nous avons utilisé l’instruction switch pour lire les données des deux champs en utilisant la méthode ReadString().

Production:

The Name of the Student is Olivia

        The Grade of the Student is A

            The Name of the Student is Laura

                The Grade of the Student is A +

    The Name of the Student is Ben

        The Grade of the Student is A -

    The Name of the Student is Henry

        The Grade of the Student is B

            The Name of the Student is Monica

                The Grade of the Student is B