IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Quelles sont les bonnes pratiques pour la lecture d'un fichier XML en c#?


Sujet :

C#

  1. #21
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Promet moi de t'interesser à la serialization/deserialization

  2. #22
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    j'ai eu un TP sur la serialisation.
    s'il me reste assez de temps, j'encoderais mon xml pour le protéger, j'imagine que c'est possible ... ^^

  3. #23
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    je viens de trouver un bug dans mon script de chargement xml.
    je vous repasse le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    public void chargement_XML(ClClasseEleve uneClasse, string unFichier)
            {
                ClMatiere uneMatiere = null;
                ClEleve unEleve = null;
                ClNote uneNote = null;
                ClAppreciation uneAppreciation = null;
                ClMatiere laMatiereNote;
                ClMatiere laMatiereAppr;
     
                XPathDocument doc = new XPathDocument(unFichier);
                XPathNavigator nav = doc.CreateNavigator();
     
                // on cré les matières
                XPathNodeIterator RecMatiere = nav.Select("laClasse/lesMatieres/uneMatiere");
                while (RecMatiere.MoveNext())
                {
                    string numMatiere = RecMatiere.Current.SelectSingleNode("numMatiere").Value;
                    string libMatiere = RecMatiere.Current.SelectSingleNode("libMatiere").Value;
                    string coeffMatiere = RecMatiere.Current.SelectSingleNode("coeffMatiere").Value;
     
                    uneMatiere = new ClMatiere(Convert.ToInt32(numMatiere), libMatiere, float.Parse(coeffMatiere));
                    AjouteMatiere(uneMatiere);
                }
     
                // on cré les élèves
                XPathNodeIterator RecEleve = nav.Select("laClasse/lesEleves/unEleve");
                while (RecEleve.MoveNext())
                {
                    string numEleve = RecEleve.Current.SelectSingleNode("numEleve").Value;
                    string nomEleve = RecEleve.Current.SelectSingleNode("nomEleve").Value;
                    string prenomEleve = RecEleve.Current.SelectSingleNode("prenomEleve").Value;
     
                    unEleve = new ClEleve(Convert.ToInt32(numEleve), nomEleve, prenomEleve, uneClasse);
                    AjouteEleve(unEleve);
     
                    // on cré les notes
                    XPathNodeIterator RecNote = nav.Select("laClasse/lesEleves/unEleve/uneNote");// on cré la classe
                    while (RecNote.MoveNext())
                    {
                        string numNote = RecNote.Current.SelectSingleNode("numNote").Value;
                        string valeurNote = RecNote.Current.SelectSingleNode("valeurNote").Value;
                        string dateNote = RecNote.Current.SelectSingleNode("dateNote").Value;
                        string coeffNote = RecNote.Current.SelectSingleNode("coeffNote").Value;
                        string numMatiereNote = RecNote.Current.SelectSingleNode("numMatiereNote").Value;
     
                        laMatiereNote = uneClasse.GetUneMatiere(Convert.ToInt32(numMatiereNote));
                        uneNote = new ClNote(Convert.ToInt32(numNote), float.Parse(valeurNote), dateNote, float.Parse(coeffNote), laMatiereNote);
                        unEleve.AjouteNote(uneNote);
                    }
     
                    // on cré les appréciations
                    XPathNodeIterator RecAppr = nav.Select("laClasse/lesEleves/unEleve/uneAppreciation");
                    while (RecAppr.MoveNext())
                    {
                        string numAppreciation = RecAppr.Current.SelectSingleNode("numAppreciation").Value;
                        string libAppreciation = RecAppr.Current.SelectSingleNode("libAppreciation").Value;
                        string numMatiereAppr = RecAppr.Current.SelectSingleNode("numMatiereAppr").Value;
     
                        laMatiereAppr = uneClasse.GetUneMatiere(Convert.ToInt32(numMatiereAppr));
                        uneAppreciation = new ClAppreciation(Convert.ToInt32(numAppreciation), libAppreciation, laMatiereAppr);
                        unEleve.AjouteAppreciation(uneAppreciation);
                    }
                }
            }
    le probleme est que les eleves recoivent l'ensemble des notes, ca ne respecte pas la structure du fichier xml.

    imaginons que je donne à l'élève 1 deux notes : 12,5 et 16
    et à l'élève 2, deux notes aussi : 5,5 et 11

    l'élève 1 posséde 4 notes au final 12,5 + 16 + 5,5 + 11
    de meme que l'élève 2

    sauriez-vous d'où vient l'erreur ? je n'arrive pas à la trouver >_<
    je suis pratiquement sur que ca vient de là !

  4. #24
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Deserialization

  5. #25
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    mais la désérialisation c'est la même chose mais en binaire non ??

    non mais bon, je me suis juste planté dans un nœud à tous les coups...
    je vais essayer de m'en sortir tout seul, comme un grand ^^
    lol

  6. #26
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    bon, je capitule, ca fait des heures que je cherche des tutos sur le xml pour respecter la lecture des noeuds >_<

    j'ai cherché partout, y compris dans les tutos et le fourm de ce site...

    sauriez-vous comment réparer mon script ?

    je n'ai pas encore vérifié, mais je pense qu'il y a la meme erreur au nouveau des appréciations, ce qui semblerait logique !

    je vais chercher encore un peu de mon coté quand meme ...

  7. #27
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    mais la désérialisation c'est la même chose mais en binaire non ??
    Pas du tout. Ce que va faire la deserialisation c'est lire ton fichier xml et créer tout seul les objets et les collections.

    Franchement, si tu prenais le temps de comprendre ce code tu verrais bon nombre de tes problèmes se résoudre...
    Y'a un truc qui te gêne dans ce code?

    Il faut savoir changer son fusil d'épaule de temps en temps et ne pas s'entêter.

    A+

    PS: en PJ une image des classes.
    Images attachées Images attachées  

  8. #28
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    j'ai honte de le dire, mais je ne comprend pas vraiment ton code u_u
    tout d'abord, je vais devoir l'apprendre, pour y intégrer les appréciations et les notes, qui sont des éléments capitaux pour les bulletins scolaires.

    d'ailleurs, je l'avais posté dans un autre topic donc tu ne l'avais surement pas vu, mais voila le diagramme UML de mes classes :



    et mon xml devrait, en principe, avoir une structure comme celle-ci : (puisqu'il y a les notes et appréciations)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <laClasse>
    	<lesMatieres>
    		<uneMatiere>
    			<numMatiere>1</numMatiere>
    			<libMatiere><![CDATA[mathématique]]></libMatiere>
    			<coeffMatiere>7</coeffMatiere>
    		</uneMatiere>
    		<uneMatiere>
    			<numMatiere>2</numMatiere>
    			<libMatiere><![CDATA[français]]></libMatiere>
    			<coeffMatiere>5</coeffMatiere>
    		</uneMatiere>
    	</lesMatieres>
    	<lesEleves>
    		<unEleve>
    			<numEleve>3</numEleve>
    			<nomEleve><![CDATA[aubry]]></nomEleve>
    			<prenomEleve><![CDATA[max]]></prenomEleve>
    			<lesNotes>
    				<uneNote>
    					<numNote>1</numNote>
    					<valeurNote>12,5</valeurNote>
    					<dateNote>01/05/2009</dateNote>
    					<coeffNote>2</coeffNote>
    					<numMatiereNote>1</numMatiereNote>
    				</uneNote>
    				<uneNote>
    					<numNote>2</numNote>
    					<valeurNote>17,25</valeurNote>
    					<dateNote>06/05/2009</dateNote>
    					<coeffNote>1</coeffNote>
    					<numMatiereNote>2</numMatiereNote>
    				</uneNote>
    			</lesNotes>
    			<lesAppreciations>
    				<uneAppreciation>
    					<numAppreciation>1</numAppreciation>
    					<libAppreciation><![CDATA[travail convenable]]></libAppreciation>
    					<numMatiereAppr>1</numMatiereAppr>
    				</uneAppreciation>
    				<uneAppreciation>
    					<numAppreciation>2</numAppreciation>
    					<libAppreciation><![CDATA[travail sérieux !]]></libAppreciation>
    					<numMatiereAppr>2</numMatiereAppr>
    				</uneAppreciation>
    			</lesAppreciations>
    		</unEleve>
    		<unEleve>
    			<numEleve>4</numEleve>
    			<nomEleve><![CDATA[galliot]]></nomEleve>
    			<prenomEleve><![CDATA[quentin]]></prenomEleve>
    			<lesNotes>
    				<uneNote>
    					<numNote>3</numNote>
    					<valeurNote>16,5</valeurNote>
    					<dateNote>01/05/2009</dateNote>
    					<coeffNote>2</coeffNote>
    					<numMatiereNote>1</numMatiereNote>
    				</uneNote>
    				<uneNote>
    					<numNote>4</numNote>
    					<valeurNote>18</valeurNote>
    					<dateNote>06/05/2009</dateNote>
    					<coeffNote>1</coeffNote>
    					<numMatiereNote>2</numMatiereNote>
    				</uneNote>
    			</lesNotes>
    			<lesAppreciations>
    				<uneAppreciation>
    					<numAppreciation>3</numAppreciation>
    					<libAppreciation><![CDATA[travail convenale mais peu encore mieu faire]]></libAppreciation>
    					<numMatiereAppr>1</numMatiereAppr>
    				</uneAppreciation>
    				<uneAppreciation>
    					<numAppreciation>4</numAppreciation>
    					<libAppreciation><![CDATA[travail sérieux !]]></libAppreciation>
    					<numMatiereAppr>2</numMatiereAppr>
    				</uneAppreciation>
    			</lesAppreciations>
    		</unEleve>
    	</lesEleves>
    </laClasse>
    j'ai pensé a refaire certains noeuds, notament ceux des notes et des appréciations, je pense que ca facilitera les choses...

    pour un élève, ses notes sont contenues dans <lesNotes></lesNotes>,
    de meme pour les appréciations !

    je vais tout de même relire ton code pour le comprendre, et j'essaierai ce soir

  9. #29
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    j'ai essayé la sérialization, j'ai donc écrit cette méthode dans ma classe ClasseEleve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void serialization(ClClasseEleve uneClasse, string unFichier)
    {
                XmlSerializer serializer = new XmlSerializer(typeof(uneClasse));
                MemoryStream mems = new System.IO.MemoryStream();
                serializer.Serialize(mems, uneClasse);
     
                string _str = Encoding.UTF8.GetString(mems.ToArray());
     
                using (FileStream stream = File.Create(@"" + unFichier))
                {
                             Byte[] data = System.Text.Encoding.UTF8.GetBytes(_str);
                             stream.Write(data, 0, data.Length);
                }
    }
    Le code est-il correct ? va t'il vraiment retranscrire toutes mes classes comme ça ? Oo
    (il faut se fier à mon schema, mais dites moi si vous voulez une description textuelle de mes classes)

  10. #30
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    bon tant pis, je verais la serialization une autre fois ^^

    je reprend mon code de chargement, et je pense avoir trouvé un moyen de contourner mon probleme. voila donc les modifications ke j'ai effectué sur mon xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <laClasse>
    	<lesMatieres>
    		<uneMatiere>
    			<numMatiere>1</numMatiere>
    			<libMatiere><![CDATA[mathématique]]></libMatiere>
    			<coeffMatiere>7</coeffMatiere>
    		</uneMatiere>
    		<uneMatiere>
    			<numMatiere>2</numMatiere>
    			<libMatiere><![CDATA[français]]></libMatiere>
    			<coeffMatiere>5</coeffMatiere>
    		</uneMatiere>
    	</lesMatieres>
    	<lesEleves>
    		<unEleve>
    			<numEleve>3</numEleve>
    			<nomEleve><![CDATA[XXXXX]]></nomEleve>
    			<prenomEleve><![CDATA[XXXXX]]></prenomEleve>
    			<lesNotes>
    				<uneNote numEleveNote="3">
    					<numNote>1</numNote>
    					<valeurNote>12,5</valeurNote>
    					<dateNote>01/05/2009</dateNote>
    					<coeffNote>2</coeffNote>
    					<numMatiereNote>1</numMatiereNote>
    				</uneNote>
    				<uneNote numEleveNote="3">
    					<numNote>2</numNote>
    					<valeurNote>17,25</valeurNote>
    					<dateNote>06/05/2009</dateNote>
    					<coeffNote>1</coeffNote>
    					<numMatiereNote>2</numMatiereNote>
    				</uneNote>
    			</lesNotes>
    			<lesAppreciations>
    				<uneAppreciation numEleveAppr="3">
    					<numAppreciation>1</numAppreciation>
    					<libAppreciation><![CDATA[travail convenable]]></libAppreciation>
    					<numMatiereAppr>1</numMatiereAppr>
    				</uneAppreciation>
    				<uneAppreciation numEleveAppr="3">
    					<numAppreciation>2</numAppreciation>
    					<libAppreciation><![CDATA[travail sérieux !]]></libAppreciation>
    					<numMatiereAppr>2</numMatiereAppr>
    				</uneAppreciation>
    			</lesAppreciations>
    		</unEleve>
    		<unEleve>
    			<numEleve>4</numEleve>
    			<nomEleve><![CDATA[XXXX]]></nomEleve>
    			<prenomEleve><![CDATA[XXXXX]]></prenomEleve>
    			<lesNotes>
    				<uneNote numEleveNote="4">
    					<numNote>3</numNote>
    					<valeurNote>16,5</valeurNote>
    					<dateNote>01/05/2009</dateNote>
    					<coeffNote>2</coeffNote>
    					<numMatiereNote>1</numMatiereNote>
    				</uneNote>
    				<uneNote numEleveNote="4">
    					<numNote>4</numNote>
    					<valeurNote>18</valeurNote>
    					<dateNote>06/05/2009</dateNote>
    					<coeffNote>1</coeffNote>
    					<numMatiereNote>2</numMatiereNote>
    				</uneNote>
    				<uneNote numEleveNote="4">
    					<numNote>5</numNote>
    					<valeurNote>12</valeurNote>
    					<dateNote>06/05/2009</dateNote>
    					<coeffNote>1</coeffNote>
    					<numMatiereNote>2</numMatiereNote>
    				</uneNote>
    			</lesNotes>
    			<lesAppreciations>
    				<uneAppreciation numEleveAppr="4">
    					<numAppreciation>3</numAppreciation>
    					<libAppreciation><![CDATA[travail convenale mais peu encore mieu faire]]></libAppreciation>
    					<numMatiereAppr>1</numMatiereAppr>
    				</uneAppreciation>
    				<uneAppreciation numEleveAppr="4">
    					<numAppreciation>4</numAppreciation>
    					<libAppreciation><![CDATA[travail sérieux !]]></libAppreciation>
    					<numMatiereAppr>2</numMatiereAppr>
    				</uneAppreciation>
    			</lesAppreciations>
    		</unEleve>
    	</lesEleves>
    </laClasse>
    je prévois d'utiliser mon noeud uneNote en fonction du numéro de l'élève à qui il appartient, de meme pour les appréciations.
    je cherche des infos pour selectionner un noeud et ca devrait aller ensuite.
    qu'en pensez vous ?? c'est un peu la solution bricolo non ? xd

  11. #31
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    c'est bon ca marche, j'ai trouvé la solution avec SelectChild !
    donc, voila mon code pour ceux que ça interesserait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    public void chargement_XML(ClClasseEleve uneClasse, string unFichier)
            {
                ClMatiere uneMatiere = null;
                ClEleve unEleve = null;
                ClNote uneNote = null;
                ClAppreciation uneAppreciation = null;
                ClMatiere laMatiereNote;
                ClMatiere laMatiereAppr;
     
                XPathDocument doc = new XPathDocument(unFichier);
                XPathNavigator nav = doc.CreateNavigator();
     
                // on cré les matières
                XPathNodeIterator RecMatiere = nav.Select("laClasse/lesMatieres/uneMatiere");
                while (RecMatiere.MoveNext())
                {
                    string numMatiere = RecMatiere.Current.SelectSingleNode("numMatiere").Value;
                    string libMatiere = RecMatiere.Current.SelectSingleNode("libMatiere").Value;
                    string coeffMatiere = RecMatiere.Current.SelectSingleNode("coeffMatiere").Value;
     
                    uneMatiere = new ClMatiere(Convert.ToInt32(numMatiere), libMatiere, float.Parse(coeffMatiere));
                    AjouteMatiere(uneMatiere);
                }
     
                // on cré les élèves
                XPathNodeIterator RecEleve = nav.Select("laClasse/lesEleves/unEleve");
                while (RecEleve.MoveNext())
                {
                    string numEleve = RecEleve.Current.SelectSingleNode("numEleve").Value;
                    string nomEleve = RecEleve.Current.SelectSingleNode("nomEleve").Value;
                    string prenomEleve = RecEleve.Current.SelectSingleNode("prenomEleve").Value;
     
                    unEleve = new ClEleve(Convert.ToInt32(numEleve), nomEleve, prenomEleve, uneClasse);
                    AjouteEleve(unEleve);
     
                    XPathNodeIterator RecLesNotes = RecEleve.Current.SelectChildren("lesNotes", "");
                    while (RecLesNotes.MoveNext())
                    {
                        XPathNodeIterator RecNote = RecLesNotes.Current.SelectChildren("uneNote", "");
                        while (RecNote.MoveNext())
                        {
                            string numNote = RecNote.Current.SelectSingleNode("numNote").Value;
                            string valeurNote = RecNote.Current.SelectSingleNode("valeurNote").Value;
                            string dateNote = RecNote.Current.SelectSingleNode("dateNote").Value;
                            string coeffNote = RecNote.Current.SelectSingleNode("coeffNote").Value;
                            string numMatiereNote = RecNote.Current.SelectSingleNode("numMatiereNote").Value;
     
                            laMatiereNote = uneClasse.GetUneMatiere(Convert.ToInt32(numMatiereNote));
                            uneNote = new ClNote(Convert.ToInt32(numNote), float.Parse(valeurNote), dateNote, float.Parse(coeffNote), laMatiereNote);
                            unEleve.AjouteNote(uneNote);
                        }
                    }
     
                    XPathNodeIterator RecLesAppr = RecEleve.Current.SelectChildren("lesAppreciations", "");
                    while (RecLesAppr.MoveNext())
                    {
                        XPathNodeIterator RecAppr = RecLesAppr.Current.SelectChildren("uneAppreciation", "");
                        while (RecAppr.MoveNext())
                        {
                            string numAppreciation = RecAppr.Current.SelectSingleNode("numAppreciation").Value;
                            string libAppreciation = RecAppr.Current.SelectSingleNode("libAppreciation").Value;
                            string numMatiereAppr = RecAppr.Current.SelectSingleNode("numMatiereAppr").Value;
     
                            laMatiereAppr = uneClasse.GetUneMatiere(Convert.ToInt32(numMatiereAppr));
                            uneAppreciation = new ClAppreciation(Convert.ToInt32(numAppreciation), libAppreciation, laMatiereAppr);
                            unEleve.AjouteAppreciation(uneAppreciation);
                        }
                    }
                }
            }
    merci pour toute l'aide que vous m'avez apporté !

  12. #32
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Yo!
    Citation Envoyé par thor76160 Voir le message
    bon tant pis, je verais la serialization une autre fois ^^
    T'as pas essayé?

  13. #33
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    si j'ai essayé, mais à chaque essai le script plante >_<
    vu le temps qu'il me reste pour boucler ce projet, je me contente de mon script actuel.
    mais pour le prochain, que je compte faire en c# aussi, j'utiliserais la serialization

    l'important c'est que ça fonctionne ^^

  14. #34
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par thor76160 Voir le message
    l'important c'est que ça fonctionne ^^
    C'est certain

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Python 3.X] Import dans des modules? Comment faire et quelles sont les bonnes pratiques?
    Par Davjack dans le forum Général Python
    Réponses: 2
    Dernier message: 03/07/2014, 12h13
  2. Réponses: 5
    Dernier message: 25/05/2009, 14h59
  3. Réponses: 7
    Dernier message: 23/03/2009, 22h38
  4. Quelles sont les bonnes pratiques avec Zend Framework ?
    Par Community Management dans le forum Zend Framework
    Réponses: 14
    Dernier message: 02/02/2009, 20h35
  5. [C#/ASP.Net/DAL] Quelles sont les bonnes pratiques ?
    Par fouhaa dans le forum Accès aux données
    Réponses: 4
    Dernier message: 13/07/2006, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo