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 :

Problème création fichier XML


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2017
    Messages : 1
    Par défaut Problème création fichier XML
    Je souhaiterai ressortir le code CSV on XML, la première ligne étant le nom des colonnes. Ce code m'indique ceci: Code_postal

    Exception non gérée*: System.InvalidOperationException: Le jeton StartAttribute
    dans l'état Element Content générera un document XML non valide.
    à System.Xml.XmlWellFormedWriter.ThrowInvalidStateTransition(Token token, Sta
    te currentState)
    à System.Xml.XmlWellFormedWriter.AdvanceState(Token token)
    à System.Xml.XmlWellFormedWriter.WriteStartAttribute(String prefix, String lo
    calName, String namespaceName)
    à System.Xml.XmlWriter.WriteAttributeString(String localName, String value)
    à ConsoleApplication2.Program.Main(String[] args) dans c:\Users\perso\Documen
    ts\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\Program.c
    s:ligne 63

    Mon 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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
     
     
    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<string> lignes = new List<string>();
                List<string> valeur = new List<string>();
                List<string> entete = new List<string>();
                string[] lines = System.IO.File.ReadAllLines(@"C:\cp.csv");
                char delimiter = ';';
                int count;
                int nb = 0;
                int nbligne = 0;
                foreach (string line in lines)
                {
                    lignes.Add(line);
                    String[] valeurs = line.Split(delimiter);
                    count = 0;
     
                    foreach (string value in valeurs)
                    {
                        //Console.WriteLine(value);
                        char[] charsToTrim = { '\"' };
                        string nvalue = value.Trim(charsToTrim);
                        if (nbligne == 0)
                        {
                            entete.Add(nvalue);
                            Console.WriteLine(nvalue);
                        }
                        else 
                        {
                            valeur.Add(nvalue);
                        }
                        count ++;
                    }
                    nb = count;
                    nbligne++;
     
                }
     
                count = 0;
                XmlWriter xmlWriter = XmlWriter.Create("test.xml");
     
                xmlWriter.WriteStartDocument();
                xmlWriter.WriteStartElement("lignes");
     
                int monEntete = 0;
     
                foreach (string unevaleur in valeur)
                {
                    if (monEntete == 0)
                    {
                        xmlWriter.WriteStartElement("uneLigne");
                    }
                    xmlWriter.WriteAttributeString(entete[monEntete],unevaleur);
                    monEntete++;
                    if (monEntete == nb)
                    {
                        monEntete = 0;
                    }
                    xmlWriter.WriteEndElement();
                }
     
                xmlWriter.WriteEndDocument();
                xmlWriter.Close();
     
            }
        }
    }

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 987
    Par défaut
    Dans le code que tu as écrit, WriteEndElement est effectué à tout les coups.
    Cela donnerait le XML suivant :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <uneLigne attribut="value"></uneLigne>attribut="value"

    Ce XML n'est pas valide et le système te renvoie une exception car tu appelle un WriteAttributeString juste après un WriteEndElement.

    Quelle est la structure que tu souhaites obtenir ?
    Avec cette information, on pourra t'aider un peu plus

Discussions similaires

  1. création fichier xml
    Par sandytarit dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 19/01/2007, 09h59
  2. création fichier XML
    Par cyreel dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 10/01/2007, 15h39
  3. Création fichier XML
    Par jaggy19 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 17/10/2006, 17h09
  4. [C#] Problème chargement fichier xml dans treeview
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2006, 14h10
  5. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11

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