Treexml

Description

Fichier XML -> TreeView (Parser XML)

Source / Exemple :


// je suggere de commencer a lire la deuxieme fonction, GetTreeNodeFromXML

public class TreeXML
{
	private static TreeNode DoElement(XmlNode xn)
	{
		TreeNode tn = new TreeNode(xn.Name);
		// créé l'objet TreeNode de base qui va recevoir les données XML
		// il portera le nom de la balise XML

		// il y a des attributs
		if (xn.Attributes != null && xn.Attributes.Count > 0)
		{
			TreeNode attr_node = tn.Nodes.Add("Attibutes");
			// on creer un sous arbre
			// qui contiendra les attributs
			
			foreach (XmlAttribute attr in xn.Attributes)    // parcours des attributs
				attr_node.Nodes.Add(attr.Name + "=" + attr.Value);
				// ajout des attributs,
				// nom de l'attribut puis sa valeur
		}

		// le sous-element XML n'est pas une balise mais une valeur textuelle
		if (xn.Value != null && xn.Value != "")
			tn.Text = xn.Value;
		else
		{
			// parcours des sous-elements XML
			foreach (XmlNode subxn in xn.ChildNodes)
				tn.Nodes.Add(DoElement(subxn));
				// on ajoute le sous-element ainsi que ses propres
				// sous-element recursivement
		}
		return (tn);
		// une fois la recursion terminée, on renvoie le TreeNode, qui contient ses sous TreeNode
	}

	public static TreeNode GetTreeNodeFromXML(string xml_file)
	{
		XmlDocument doc = new XmlDocument();
		doc.Load(xml_file);
		// charge un fichier xml, cette fonction se charge toute seule de gerer le fichier
		// pas besoin de Close ou autre

		XmlNode root = doc.DocumentElement;
		// root devient le premier element XML
		// (il n'y en a jamais plus d'un en XML, il est toujours unique)

		return (DoElement(root));
		// appel a DoElement
	}
}

Conclusion :


Il n'y a pas de commentaires car bien souvent les commentaires decalent les lignes, on ne sait plus lesquels vont ou, ca complique les chose. Les classes utilisés ici sont vraiment simple et tres bien concu, par consequent je pense que le code parle de lui meme.

En cas de question eventuelles, n'hesitez pas ;)

Message a l'attention des Admins/Modo : Je sais que ce code est d'une banalité a mourrir, mais cependant des gents disent encore avoir du mal avec l'XML en .NET et disent ne pas toujours trouver toutes les infos qu'ils cherchent, j'espere que ce code et les questions/réponses qui suivront pourront leur apporter des lumiere :)

Codes Sources

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.