Parcourir et ajouter à un fichier xml en C#
le coin-coin
Messages postés
75
Statut
Membre
-
le coin-coin Messages postés 75 Statut Membre -
le coin-coin Messages postés 75 Statut Membre -
Bonjour à tous,
Je souhaiterai récupérer les données d'un fichier xml en le parcourant en C#. J'aimerai également savoir comment ajouter des données dans ce fichier. J'ai suivi quelques tuto mais mais je ne les ai pas compris. Je ne sais pas quelles méthodes utiliser?
Voici la structure de mon fichier xml:
<taches>
<tache>
<numero>1</numero>
<titre>titre</titre>
<texte>texte</texte>
<date>30/10/08</date>
<heure>14h25</heure>
<tache>
....
....
</taches>
Et voila les premières lignes de mon code:
XmlDocument xmlTache = new XmlDocument();
xmlTache.Load(Application.StartupPath + "Taches.xml");
Par exemple: Comment récupérer les numéros des tâches?
Comment ajouter une tâche?
Comment gérer les nœuds?
Merci de votre aide!
Je souhaiterai récupérer les données d'un fichier xml en le parcourant en C#. J'aimerai également savoir comment ajouter des données dans ce fichier. J'ai suivi quelques tuto mais mais je ne les ai pas compris. Je ne sais pas quelles méthodes utiliser?
Voici la structure de mon fichier xml:
<taches>
<tache>
<numero>1</numero>
<titre>titre</titre>
<texte>texte</texte>
<date>30/10/08</date>
<heure>14h25</heure>
<tache>
....
....
</taches>
Et voila les premières lignes de mon code:
XmlDocument xmlTache = new XmlDocument();
xmlTache.Load(Application.StartupPath + "Taches.xml");
Par exemple: Comment récupérer les numéros des tâches?
Comment ajouter une tâche?
Comment gérer les nœuds?
Merci de votre aide!
A voir également:
- Parcourir et ajouter à un fichier xml en C#
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
Salut
Les premières lignes de ton code sont exactes.
Voici ma méthode
1. Création et chargement du document xml
System.Xml.XmlDocument pDoc=new System.Xml.XmlDocument();
pDoc.load(Application.StartupPath + "Taches.xml");
2. Lecture du nœud de niveau 1: Taches
Dans ton document ce noeud est le premier, tu peux le récupérer avec la fonction:
System.Xml.XmlNode curNode=pDoc.DocumentElement;
3. Lecture des nœuds enfants
le nœud tache est enfant de <Taches> tu peux le récupérer avec le fonction SelectSingleNode:
System.Xml.XmlNode nextNode=curNode.SelectSingleNode("Tache");
4. Lecture d'une donnée du nœud: fonction innerText
On se connecte sur le noeud numero:
curNode=nextNode;
nextNode=curNode.SelectSingleNode("numero");
On lit la donnée avec la fonction innerText:
string data=nextNode.InnerText;
Je te post la suite...
Elx
http://www.artweweb.com/
Les premières lignes de ton code sont exactes.
Voici ma méthode
1. Création et chargement du document xml
System.Xml.XmlDocument pDoc=new System.Xml.XmlDocument();
pDoc.load(Application.StartupPath + "Taches.xml");
2. Lecture du nœud de niveau 1: Taches
Dans ton document ce noeud est le premier, tu peux le récupérer avec la fonction:
System.Xml.XmlNode curNode=pDoc.DocumentElement;
3. Lecture des nœuds enfants
le nœud tache est enfant de <Taches> tu peux le récupérer avec le fonction SelectSingleNode:
System.Xml.XmlNode nextNode=curNode.SelectSingleNode("Tache");
4. Lecture d'une donnée du nœud: fonction innerText
On se connecte sur le noeud numero:
curNode=nextNode;
nextNode=curNode.SelectSingleNode("numero");
On lit la donnée avec la fonction innerText:
string data=nextNode.InnerText;
Je te post la suite...
Elx
http://www.artweweb.com/
Ajouter un noeud au fichier xml
1. Création du noeud: CreateNode
La création d'un noeud se fait à partir de la variable System.Xml.XmlDocument
System.Xml.XmlDocument pDoc;
System.Xml.XmlNode newNode=pDoc.CreateNode(System.Xml.XmlNodeType.Element,NodeName,"");
pour créer un nouveau noeud "tache" il faut donc écrire:
System.Xml.XmlNode newNode=pDoc.CreateNode(System.Xml.XmlNodeType.Element,NodeName,"Tache");
2. Relier le nœud au nœud parent: AppendChild
Avec la fonction SelectSingleNode on récupère le noeud parent
System.Xml.XmlNode nextNode=curNode.SelectSingleNode("Tache");
La fonction AppendChild permet de rajouter un noeud enfant
nextNode.AppendChild(newNode)
3. Sauvegarde: Save
On sauvegarde le nouveau fichier avec la fonction System.Xml.XmlDocument.Save:
pDoc.Save("NomDuFichier.xml")
Elx
http://www.artweweb.com/
1. Création du noeud: CreateNode
La création d'un noeud se fait à partir de la variable System.Xml.XmlDocument
System.Xml.XmlDocument pDoc;
System.Xml.XmlNode newNode=pDoc.CreateNode(System.Xml.XmlNodeType.Element,NodeName,"");
pour créer un nouveau noeud "tache" il faut donc écrire:
System.Xml.XmlNode newNode=pDoc.CreateNode(System.Xml.XmlNodeType.Element,NodeName,"Tache");
2. Relier le nœud au nœud parent: AppendChild
Avec la fonction SelectSingleNode on récupère le noeud parent
System.Xml.XmlNode nextNode=curNode.SelectSingleNode("Tache");
La fonction AppendChild permet de rajouter un noeud enfant
nextNode.AppendChild(newNode)
3. Sauvegarde: Save
On sauvegarde le nouveau fichier avec la fonction System.Xml.XmlDocument.Save:
pDoc.Save("NomDuFichier.xml")
Elx
http://www.artweweb.com/
Alternative pour la paramètre numéro
Je pense qu'il est préférable de placer le numéro de la tache dans un attribut de la balise:
<tache numero="1">
<titre>titre</titre>
<texte>texte</texte>
<date>30/10/08</date>
<heure>14h25</heure>
</tache>
<tache numero="2">
<titre>titre</titre>
<texte>texte</texte>
<date>30/10/08</date>
<heure>14h25</heure>
</tache>
Lorsque que tu crées la noeud tache, tu peux ajouter un attribut avec la fonction SetAttribute.
Pour la création du noeud, on peut utiliser la fonction CreateElement
Le code de création du noeud tache numéro 1 devient donc:
System.Xml.XmlDocument pDoc;
System.Xml.XmlNode newNode=pDoc.CreateElement("tache");
newNode.SetAttribute("numero","1");
Pour récupérer la valeur de l'attribut, tu peux utiliser la fonction GetAttribute:
string attribute=curNode.GetAttribute("numero");
Elx
http://www.artweweb.com/
Je pense qu'il est préférable de placer le numéro de la tache dans un attribut de la balise:
<tache numero="1">
<titre>titre</titre>
<texte>texte</texte>
<date>30/10/08</date>
<heure>14h25</heure>
</tache>
<tache numero="2">
<titre>titre</titre>
<texte>texte</texte>
<date>30/10/08</date>
<heure>14h25</heure>
</tache>
Lorsque que tu crées la noeud tache, tu peux ajouter un attribut avec la fonction SetAttribute.
Pour la création du noeud, on peut utiliser la fonction CreateElement
Le code de création du noeud tache numéro 1 devient donc:
System.Xml.XmlDocument pDoc;
System.Xml.XmlNode newNode=pDoc.CreateElement("tache");
newNode.SetAttribute("numero","1");
Pour récupérer la valeur de l'attribut, tu peux utiliser la fonction GetAttribute:
string attribute=curNode.GetAttribute("numero");
Elx
http://www.artweweb.com/