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

Windows Forms Discussion :

Exception sur XmlTextWriter


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut Exception sur XmlTextWriter
    Bonjour à tous,

    dans une boucle foreach je rencontre un problème assez bizarre

    dans ma boucle j'essaie de fermer un élément xml qui est déjà ouvert à l'extérieure et c# me crie dessus en me disant
    Le jeton StartElement dans l'état Epilog générera un document XML non valide.
    mais pourtant je prends mes précautions en l'ouvrant et en le fermant aux bons endroit. mon problème ressemble à ca :
    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
     
     
    XmlTextWriter xmlWriter = new XmlTextWriter(@"c:\temp\file.xml", new UTF8Encoding());
    xmlWriter.Formatting = Formatting.Indented;
    xmlWriter.Indentation = 1;
    xmlWriter.IndentChar = (char)0x0009;
     
    xmlWriter.WriteStartDocument();
    xmlWriter.WriteStartElement("parent"); //Ouverture du premier élément.
    int i = 1;
    	foreach (string chaine in chaines){
    		//...Création d'éléments
    		if (i == 4){
    			i = 1;
    			xmlWriter.WriteEndElement(); //Fermeture du premier élément mais aussi, évetuellement, l'élément intermédiaire.
    			xmlWriter.WriteStartElement("parent");//Ouverture d'un élément intermédiaire et c'est ici qu'il plante.
    		}else{
    			i++;
    		}
    	}
    xmlWriter.WriteEndElement(); //Fermeture du dernier élément intermiédiaire.
    xmlWriter.WriteEndDocument();
    xmlWriter.Close();
    est-ce que, par hasard, quelqu'un aurait déjà rencontré un tel problème pour m'indiquer la sortie s'il vous plait????

    merciiii et bonne soirée.

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Je ne vois rien qui saute aux yeux !

    Mais

    Je pense qu'il faut peut etre chercher le problème ailleurs que dans la portion de code que tu montre (la plupart des erreurs qu'on ne trouve pas c'est parce qu'on ne les cherche pas au bon endroit)

    Ensuite cet iterateur i++ dans un foreach ca sent tres mauvais a mon avis !!

    Dans 80% des cas quand je vois un i++ dans un foreach c'est qu'on n'a pas pensé a utiliser un for {} normal et qu'on va louper un incrément qq part

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    Tout à fait il n'y a rien qui saute aux yeux mais vraiment essai cette portion de code et tu verra le résultat c pire quand il y a cette erreur alors qu'il ne devrait pas y en avoir

    et le foreach c la meilleure solution que j'ai trouvé pour mon problème de boucle hihi

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Je ne suis pas expert en xml mais j'ai compris qu'il te faut une "racine"

    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
          XmlTextWriter xmlWriter = new XmlTextWriter(@"d:\tmp\file.xml", new UTF8Encoding());
          xmlWriter.Formatting = Formatting.Indented;
          xmlWriter.Indentation = 1;
          xmlWriter.IndentChar = (char)0x0009;
    
          xmlWriter.WriteStartDocument();
          xmlWriter.WriteStartElement("Root"); 
         xmlWriter.WriteStartElement("parent"); //Ouverture du premier élément.
          int i = 1;
          for (int a=0;a<50;a++)
          {
            //...Création d'éléments
            if (i == 4)
            {
              i = 1;
              xmlWriter.WriteEndElement(); //Fermeture du premier élément mais aussi, évetuellement, l'élément intermédiaire.
              xmlWriter.WriteStartElement("parent");//Ouverture d'un élément intermédiaire et c'est ici qu'il plante.
            }
            else
            {
              i++;
            }
          }
          xmlWriter.WriteEndElement(); //Fermeture du dernier élément intermiédiaire.
          xmlWriter.WriteEndDocument();
          xmlWriter.Close();

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    Ben ouais figure toi il fallait bien un élément racine Hahaha

    Merci
    heuu en passant c'est quoi qui t'a fait comprendre qu'il te fallait un racine plééz???

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 01/12/2005, 10h54
  2. Réponses: 5
    Dernier message: 07/07/2005, 10h20
  3. [vb.net] exception sur monForm.Show
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/07/2005, 12h27
  4. Exception sur Java Web Start
    Par Le Bressan dans le forum JWS
    Réponses: 5
    Dernier message: 01/02/2005, 10h52
  5. [Tomcat] Exception sur JSP
    Par Malaussene dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 10/09/2004, 08h43

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