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 :

Utilisation d'ArrayList pour XML


Sujet :

C#

  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut Utilisation d'ArrayList pour XML
    Bonjour,
    J'ai un petit problème avec mon traitement de XML là et je pense que ce n'est pas très compliqué mais je bloque !

    Au final, je veux que mon fichier XML ressemble à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="UTF-8">
    <LogTest>
    	<Test>
    		<TestName>Nom 1</TestName>
    		<Errors>Erreur 1</Errors>
    	</Test>
    	<Test>
    		<TestName>Nom 2</TestName>
    		<Errors>Erreur 2</Errors>
    	</Test>
    </LogTest>
    Voici mon code :
    En fait, je récupère deux ArrayList contenant des Strings et je dois mettre le contenu des ArrayList dans les éléments TestName et Errors du fichier XML que je créer.

    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
     
    public void CreateFinalXML(ArrayList TestName, ArrayList Errors)
            {
                XmlTextWriter Xtw = null;
     
                Xtw = new XmlTextWriter("RetourErreurs.xml", System.Text.Encoding.UTF8);
                Xtw.Formatting = Formatting.Indented;
     
                Xtw.WriteStartDocument();
                Xtw.WriteStartElement("LogTest");
                Xtw.WriteStartElement("Test");
                foreach (String elmt1 in TestName)
                    Xtw.WriteElementString("Name", elmt1);
                foreach (String elmt2 in Errors)
                    Xtw.WriteElementString("Errors", elmt2);
                Xtw.WriteEndElement();
                Xtw.WriteEndElement();
                Xtw.WriteEndDocument();
     
                Xtw.Flush();
                Xtw.Close();
            }
    Sauf que je ne sais pas comment placer les foreach (si c'est bien ca qu'il faut utiliser) afin d'avoir plusieurs éléments <Test>. Je sais qu'il manque quelque chose donc si vous pouvez m'éclairer...

    Merci d'avance pour vos réponses !

  2. #2
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    C'est bon j'ai trouvé la solution ! J'ai utilisé les IEnumerator.
    Je met mon code comme réponse au cas où si d'autres personnes ont le même problème :

    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
     
    public void CreateFinalXML(ArrayList TestName, ArrayList Errors)
            {
                XmlTextWriter Xtw = null;
                String date = null;
                date = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
     
                // Création du nouveau fichier XML avec la date et l'heure courante
                Xtw = new XmlTextWriter(date + "__RetourErreurLogs.xml", System.Text.Encoding.UTF8);
                Xtw.Formatting = Formatting.Indented;
     
                // Structure du document XML contenant les erreurs des différents logs
                Xtw.WriteStartDocument();
                Xtw.WriteStartElement("LogTest");
     
                IEnumerator EName = TestName.GetEnumerator();
                IEnumerator EErrors = Errors.GetEnumerator();
     
                while(EName.MoveNext() && EErrors.MoveNext()){
                    Xtw.WriteStartElement("Test");
                    Xtw.WriteElementString("Name", EName.Current.ToString());
                    Xtw.WriteElementString("Errors", EErrors.Current.ToString());
                    Xtw.WriteEndElement();
                }
     
                Xtw.WriteEndElement();
                Xtw.WriteEndDocument();
     
                // Vide le contenu de la mémoire tampon
                Xtw.Flush();
                // Ferme le fichier XML
                Xtw.Close();
            }

  3. #3
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 250
    Par défaut
    Salut,
    j'avais fais ça pour une petit projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                XDocument myDocument = new XDocument();
                myDocument.Add(new XElement("LogTest"));
     
                myDocument.Root.Add(new XElement("Test",
                        new XElement("TestName", Name),
                        new XElement("Errors", Quantity)
                ));
     
                myDocument.Save(path + ".xml");
    Donc voilà, tu fais un foreach "test", autour du add et le tour est joué.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2013, 18h59
  2. Utilisation de DOM pour fichiers xml
    Par awalter1 dans le forum Général Python
    Réponses: 4
    Dernier message: 21/10/2010, 15h05
  3. Réponses: 2
    Dernier message: 20/08/2008, 15h45
  4. [XSD] Utiliser plusieurs schémas pour un XML
    Par baygz dans le forum Valider
    Réponses: 1
    Dernier message: 31/07/2006, 16h03

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