Parcours d'un document xml à l'aide de dom

Contenu du snippet

Mon code se contente d'afficher les noeuds d'un document XML. Le parcours se fait de manière récursive à l'aide de DOM. Il faut instancier le constructeur en lui passant le nom du fichier XML à parser.

Source / Exemple :


using System;
using System.Xml;

/// <summary>
/// Parsing à l'aide de DOM d'un document XML.
/// </summary>
public class LecteurXmlDOM{
  //le fichier contenant le document XML
  private string fichier;

  /// <summary>
  /// <param name="fichier">le nom du fichier XML à parser</param>
  /// </summary>
  public LecteurXmlDOM(string fichier){
    this.fichier=fichier;
  }

  /// <summary>
  /// Lecture de tous les noeuds du document XML de manière récursive.
  /// </summary>
  public void lire(){
    XmlDocument doc=new XmlDocument();
    doc.Load(fichier);
    lireRecursif(doc.ChildNodes[1]);
  }

  /// <summary>
  /// Lecture d'un noeud.
  /// Appel récursif sur tous les fils du noeud.
  /// <param name="noeud">le noeud</param>
  /// </summary>
  private void lireRecursif(XmlNode noeud){
    //affichage du noeud courant
    Console.WriteLine("----------------------------");
    Console.WriteLine("Type du noeud="+noeud.Name);
    Console.WriteLine("Nom de noeud="+noeud.Name);
    Console.WriteLine("Contenu du noeud="+noeud.Value);
    if (noeud.Attributes!=null)
      foreach (XmlAttribute a in noeud.Attributes)
        Console.WriteLine("  "+a.Name+"="+a.Value);
    foreach (XmlNode n in noeud.ChildNodes)
      lireRecursif(n);
  }

  /// <summary>
  /// </summary>
  static void Main(string[] args){
    LecteurXmlDOM lecteurXmlDOM=new LecteurXmlDOM("actu0.xml");
    lecteurXmlDOM.lire();
  }
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_celene)