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 :

programme pour convertir xml en txt


Sujet :

C#

  1. #1
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut programme pour convertir xml en txt
    Bonjour,
    J'aimerais créer un petit programme qui convertit des fichier XML en fichier texte pour pouvoir lire à la fin ce fichier par Excel 2000, et je n'ai pas la moindre idée sur comment faire quelqu'un à une idée.

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Change l'extension en .txt et le tour est joué .

    Sinon plus sérieusement, il faut un peu expliquer quelle est la structure de ton fichier XML et quelle doit être celle du fichier texte.
    Edit : Même sans ça, je dirais :
    1. lire le contenu du fichier XML
    2. mapper le contenu tel que voulu dans le fichier texte.

  3. #3
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    le fichier contient des millier de données et je ne veux afficher que les données dont le chemin est déjà spécifié.

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Je ne vois pas où tu as un problème (Edit : sachant que je ne vois pas ce qu'apporte ton dernier message).

    Pour lire un fichier XML, il y a :
    1. La sérialisation/désérialisation (ça c'est bien si tu connais au poil la structure du fichier (ou que tu as un xsd) pour créer les classes qui vont bien pour désérialiser le contenu)
    2. XmlDocument pour lire directement le fichier et pouvoir le parcourir à ta guise
    3. Et sans doute d'autres choses

  5. #5
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    j’essaierai de faire ce que tu me dis .

  6. #6
    Invité
    Invité(e)
    Par défaut
    Qu'est ce que tu veux dire par "lire le fichier par Excel 2000" ?
    Tu veux afficher le contenu des éléments ? Les attributs ? Est-ce que tu veux aussi voir les balises ?

    Sinon si tu utilises le framework qui va bien, je te conseille d'utiliser Linq To Xml, et donc XDocument pour lire le fichier.
    Ca permet de faire du requêtage "à la SQL", et je pense que ça ira bien pour ce que tu veux faire.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    XDocument doc = XDOcument.Load("toto.xml");
    var elements = from element in doc.Root.Descendants()
                         where element.Name == "machin"
                         select element;
    Avec ça, tu as dans elements une collection de tous les éléments <machin> de ton fichier.
    De la même façon tu peux faire tout ce que tu veux : sélectionner les éléments dont un attribut vaut une certaine valeur, les éléments qui contiennent telle ou telle donnée...

  7. #7
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    Bonjour,
    Je mettrai le point sur une solution déjà postée.

    tout d'abord, commences par créé un objet métier qui aura les attribues relatifs au format de sortie.
    un tour de serialization/deserialization (selon le sens, objets>XML XML>objets) de ton fichier XML, pour le convertir en une liste d'objet. Après il te restera plus qu'à mettre en place une petite fonction pour formater les attribues de ton objet sous le format souhaité.

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Je crois que tout ça est bien compliqué. Qui dit transformation de XML dit XSLT !! Je ne suis vraiment pas un expert en la matière mais je pense que c'est la bonne façon de faire sans avoir à écrire de programme spécifique. Il y a plein de tutos en ligne.

  9. #9
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    En fait je suis en stage et c'est mon tuteur qui me demande de faire ce programme.

    Le but est de transférer les données qui sont utiles du fichier XML vers un simple fichier texte.

    Pour cela il y a un fichier texte avec le chemin correspondant aux valeurs voulues pour certaines données.

  10. #10
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Le problème c'est que ta demande est trop vague. Le "fichier texte avec le chemin correspondant aux valeurs voulue pour certaines données", peux-tu décrire plus clairement son but ?

    Sinon je trouve la solution de chrisdot avec du XSLT attrayante, il faudra coder l'application de la transformation, mais pour ton tuteur lui présenter cette idée montre une certaine recherche de ta part et au moins si tu veux changer la sortie de ton programme, pas besoin de recompiler, juste besoin de modifier le XSLT ce qui est un avantage non négligeable.

  11. #11
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    En gros Pouvoir parcourir le fichier XML à des endroits spécifique.

  12. #12
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    Parcourir le fichier Xml .. des endroits spécifiques...
    Si tu connais la structure de ton fichier Xml, essaye d'en tirer ce que tu veux en utilisant des requêtes XPATH. cela te retournerait une liste de (node) que tu peut manipuler. ( InnerText entre autre ). après pour écrire cela dans ton fichier Texte, je crois pas que c'est la chose la plus compliquée.

  13. #13
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    Dac merci.
    Je viens de commencer et j'arrive pas à afficher mon fichier Xml dans mon formulairs
    voici 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
     
       { try
                        {
                            XmlDocument doc = new XmlDocument();
                            DialogResult openRes = openFileDialog1.ShowDialog();
                            if (openRes == DialogResult.OK)
                            doc.Load(openFileDialog1.FileName); 
     
                        textBox1_TextChanged(sender, e);
                    }
                    catch (XmlException) { MessageBox.Show("seul les fichiers ayant l'extension Xml sont autorisés"); }
     
            }

  14. #14
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    textBox1_TextChanged(sender, e);

    je ne sais pas ce que tu veux en faire de ton fichier XML, voilà un bout de code qui pourra te donner une idée de comment tirer ce dont tu as besoin de ton fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                string myXpathRequest = "Your XPATH Request";
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load("monFichierXml.xml");
                XmlNodeList listNodes = xDoc.SelectNodes(myXpathRequest);
                foreach (XmlNode node in listNodes)
                {
                    string InnerText = node.InnerText;
                    int AttributesCount = node.Attributes.Count;
                    string Attribute_1 = node.Attributes[0].InnerText; //            node.Attribute["MyAttribute"].InnerText;
                }

  15. #15
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    ce que je veux faire c'est créer un bouton ouvrir qui permet de chercher ou est le fichier. Après l'afficher sur ma Forms.
    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
      private void textBox1_TextChanged(object sender, EventArgs e)
            {
                textBox1.Text = openFileDialog1.FileName;//recoit le chemin de mon doc
            }
     
     
     
            private void click_btn(object sender, EventArgs e)
            {
                 XmlDocument doc = new XmlDocument();
                            DialogResult openRes = openFileDialog1.ShowDialog();
                            if (openRes == DialogResult.OK)
                            doc.Load(openFileDialog1.FileName); 
     
                        textBox1_TextChanged(sender, e);; }
     
     
                }
    Le problème que j'ai c'est lors de l'appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc.Load(openFileDialog1.FileName);
    Le fichier XML ne s'affiche pas sur ma Forms

  16. #16
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    Ouiii, mais je ne vois pas de code pour parcourir le fichier XML, encore moins un formulaire...

    (doc.load) ca te permet juste de charger le contenu du fichier XML dans la variable (doc) après c'est à toi de le parcourir. d'en tirer ce que tu veux, et bien sur mettre à jour la (form).

    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
    private void bntOpen_Click(object sender, EventArgs e)
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.CheckPathExists = true;
                dlg.CheckFileExists = true;
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    string Filename = dlg.FileName;
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(Filename);
     
                    MessageBox.Show(xDoc.OuterXml);
     
                }
            }
    le MessageBox te montrera le contenu de ton fichier XML. maintenant pour le parser et en tirer ce dont tu as besoin.... tu as le code précèdent.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox1_TextChanged(sender, e);;
    cette ligne qui vient après le Doc.Load c'est pour ???

  17. #17
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    Citation Envoyé par ToshiroSama Voir le message
    Ouiii, mais je ne vois pas de code pour parcourir le fichier XML, encore moins un formulaire...

    (doc.load) ca te permet juste de charger le contenu du fichier XML dans la variable (doc) après c'est à toi de le parcourir. d'en tirer ce que tu veux, et bien sur mettre à jour la (form).

    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
    private void bntOpen_Click(object sender, EventArgs e)
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.CheckPathExists = true;
                dlg.CheckFileExists = true;
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    string Filename = dlg.FileName;
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(Filename);
     
                    MessageBox.Show(xDoc.OuterXml);
     
                }
            }
    le MessageBox te montrera le contenu de ton fichier XML. maintenant pour le parser et en tirer ce dont tu as besoin.... tu as le code précèdent.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox1_TextChanged(sender, e);;
    cette ligne qui vient après le Doc.Load c'est pour ???
    C'est pour récupérer le nom du fichier et ça marche.pas de problème à ce niveau.

  18. #18
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    doc.Load(openFileDialog1.FileName); 
    textBox1_TextChanged(sender, e);
    tu charges le fichier.. donc le FileName tu l'as déjà... pourquoi récupérer je ne sais quoi ?

    si le MessageBox t'affiche bien le contenu de ton fichier XML ... bah on va pas re-poster le code...

    > Doc.SelectNodes("/Root/Fils/PetitFils");
    > une boucle Foreach et parcours ta liste d’éléments.

    La programmation ce n'est pas de la magie aussi !!

  19. #19
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Par défaut
    Je croyais que ça m'afficherai le fichier XML en Format de tableau ou quelque chose comme ça

  20. #20
    Membre actif Avatar de ToshiroSama
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 77
    Par défaut
    tu charges le fichier XML... tu veux que le parsing se fasse automatiquement et en plus que ca soit afficher et formatter !! et pourquoi pas le généré directement en PDF ...

    à la place du MessageBox, mets le Code de la boucle foreach, après pour la requête XPATH le plus simple et le plus basic serait de spécifier le chemin des éléments que tu veux récupérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <root>
    <fils>
    <petitfils></petitfils>
    <petitfils></petitfils>
    <petitfils></petitfils>
    </fils>
    </root>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Doc.SelectNodes("/root/fils/petitfils");
    la requête te ramènera la liste de tous les petits fils.
    maintenant au niveau de ta boucle, tu peux lire les innerText

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <balise>InnerText</balise>
    ou les attribues

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <balise att_1="value"></balise>
    Il te reste plus qu'à foncer à mon avis

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. programme php pour obtenir xml via sax ou dom
    Par valmelissa dans le forum Langage
    Réponses: 0
    Dernier message: 19/05/2011, 18h38
  2. script php pour convertir un array en xml
    Par omar24 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 02/03/2011, 14h22
  3. [XL-2007] Code pour convertir fichier .xls en .txt
    Par christophe31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/03/2010, 14h59
  4. Programme C++ pour convertir les images tif ou JPG en image raw
    Par kruskal21 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 29/01/2010, 22h09
  5. Réponses: 6
    Dernier message: 23/06/2007, 12h29

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