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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 566 fois - Téléchargée 31 fois

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

Ajouter un commentaire

Commentaires

Messages postés
11
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
20 septembre 2010
2
Bonjour,

J'ai utilisé ce code dans un xml, mais lors de la lecture, la variable noeuds.value me renvois une chaine vide j'aimerais savoir pourquoi mais surtout comment résoudre ce problème

Merci de bien me répondre au plus vite
Messages postés
50
Date d'inscription
dimanche 28 décembre 2003
Statut
Membre
Dernière intervention
11 avril 2006
1
Pourquoi ne pas avoir utilisé XmlTextReader ou XmlNodeReader ?
... réinventer la roue, ca peut être bien parfois... mais c'est long ;)
Messages postés
40
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
5 février 2008

Mon but était de recréer une arborescence dans un treeview par rapport à un fichier XML, je croyais galérer, en chier des bulles ! mais grace à toi j'ai fai ça easy love...
Merci bien

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)