Partage
  • Partager sur Facebook
  • Partager sur Twitter

TinyXML2 LoadFile("File.xml") dans avec C++

Sujet résolu
    10 août 2021 à 23:24:04

    Bonjour à tous. 

    Je viens en dernier recours vous demander à vous car après plusieurs heures de recherches je ne trouve visiblement pas le problème dans mon code. 

    Je commence tout juste a utiliser TinyXML2 pour un programme test et je suis déjà bloqué au chargement de celui-ci. 

    Voici mes différents fichier utilisés. 

    <?xml version="1.0" encoding="utf-8"?>
    
    <Root>
    	<Champion obj="Aatrox_T" name="Aatrox" lane="1" ally="true" ennemy="true" meta="false"/>
    	<Champion obj="Diana_J" name="Diana" lane="2" ally="true" ennemy="true" meta="true"/>
    	<Champion obj="Azir_M" name="Azir" lane="3" ally="true" ennemy="true" meta="false"/>
    	<Champion obj="Jinx_B" name="Jinx" lane="4" ally="false" ennemy="true" meta="false"/>
    	<Champion obj="thresh_S" name="Thresh" lane="5" ally="true" ennemy="true" meta="false"/>
    </Roots>
    void load()
    {
    
    #ifndef XMLCheckResult
    #define XMLCheckResult(a_eResult) if (a_eResult != tinyxml2::XML_SUCCESS) { printf("Error: %i\n", a_eResult); }
    #endif
    	tinyxml2::XMLDocument xmlDoc;
    	tinyxml2::XMLError eResult = xmlDoc.LoadFile("ChampionConfig.xml");
    	XMLCheckResult(eResult);
    }




    L'application ne fait que lancer la fonction Load(), et quand celle-ci s'exécute j'ai récupère une "Erreur : 14" sortie de la fonction XMLCheckResult(a_eResult)

    A mon sens, il me semble que le 14 vient directement de TinyXML2.cpp mais sans certitude. le problème c'est que je n'ai aucune idée de ce qe cette erreur signifie. 

    Je suis persuadé que c'est une erreur bète de ma part mais je vous avoue que je suis un peu perdu. 

    Merci beaucoup de votre aide.

    -
    Edité par Tzimue 11 août 2021 à 9:26:06

    • Partager sur Facebook
    • Partager sur Twitter
      11 août 2021 à 3:49:30

      Bonjour,

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        11 août 2021 à 10:34:39

        N'y a-t-il pas un s en trop ligne 9 ... </Root>
        • Partager sur Facebook
        • Partager sur Twitter
          11 août 2021 à 10:54:19

          magma a trouvé le problème.

          Par contre moi j'aimerais savoir plusieurs choses :

          • Fais tu du XML par choix ? Il y a tout de même des alternatives plus sympathiques de nos jours (JSON).
          • Ton utilisation de XML abuse peut-être des attributs. Normalement les attributs sont là pour aider à scanner les données (format de date, de nombres, compression, données facultatives, etc). Voir cette question pour des détails.

          -
          Edité par markand 11 août 2021 à 10:56:39

          • Partager sur Facebook
          • Partager sur Twitter

          git is great because Linus did it, mercurial is better because he didn't.

            11 août 2021 à 11:36:12

            Merci beaucoup Magma. Effectivement erreur bète qui est passer après la relecture un peu rapide.

            Je m'en suis rendu compte aussi en lançant mon programme pas à pas. 

            Je note ta remarque Markand. en vrai je regardais entre XML et JSON et j'avais l'impression que XML était plus simple à mettre en place et pour récupérer les données.

            Actuellement c'est un simple fichier XML utilisé pour créer des Objets lors de l'initialisation du programme, je vais essayer de regarder pour changer la structure et favoriser les éléments plutôt que les attributs 

            Je reste preneur de conseil bien entendu. 

            Encore merci à vous deux. 

            • Partager sur Facebook
            • Partager sur Twitter
              12 août 2021 à 22:54:26

              markand a écrit:

              • Ton utilisation de XML abuse peut-être des attributs. Normalement les attributs sont là pour aider à scanner les données (format de date, de nombres, compression, données facultatives, etc). Voir cette question pour des détails.
              Au boulot j'analyse des fichiers CFAO qui contiennent parfois du XML quand on les dépiaute, t'as pas idée du nombre d'attributs que parfois ils mettent dans un seul noeud. Mais comme toi je trouve ça dégueulasse. Mais hélas la propreté n'est pas la panacée chez certains grands noms du domaine...

              • Partager sur Facebook
              • Partager sur Twitter

              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                13 août 2021 à 8:56:15

                Fvirtman a écrit:

                markand a écrit:

                • Ton utilisation de XML abuse peut-être des attributs. Normalement les attributs sont là pour aider à scanner les données (format de date, de nombres, compression, données facultatives, etc). Voir cette question pour des détails.

                Au boulot j'analyse des fichiers CFAO qui contiennent parfois du XML quand on les dépiaute, t'as pas idée du nombre d'attributs que parfois ils mettent dans un seul noeud. Mais comme toi je trouve ça dégueulasse. Mais hélas la propreté n'est pas la panacée chez certains grands noms du domaine...

                On avait aussi quelque fichiers XML maison du style :

                <Property
                    name="host"
                    value="example.org"
                    type="string"
                    readonly="false" />

                Je pense être une des rares personnes à aimer l'XML (enfin, avec parcimonie) et quand je vois ça je ne peux m'empêcher de me dire qu'XML ferait tout de même bien de disparaitre.

                • Partager sur Facebook
                • Partager sur Twitter

                git is great because Linus did it, mercurial is better because he didn't.

                  13 août 2021 à 9:45:50

                  Dans un langage de programmation, la manipulation des attributs reste généralement plus pratique que celui d'éléments imbriqués car ceux-ci sont sous forme de dictionnaire. Il y a aussi quelques différences au niveau du "type" des valeurs comme ID et IDREF. À la longue, je trouve que passer par des attributs est plus lisible et surtout plus compacte, je suis plus de l'avis de la seconde réponse de ton lien, markand.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 août 2021 à 11:57:23

                    markand a écrit:

                    Je pense être une des rares personnes à aimer l'XML (enfin, avec parcimonie) et quand je vois ça je ne peux m'empêcher de me dire qu'XML ferait tout de même bien de disparaitre.


                    Moi aussi j'adore le XML. 

                    Je m'en sers beaucoup pour faire des dumps, quand tu as un truc complexe en mémoire en hiérarchie c'est bien pratique !

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                    TinyXML2 LoadFile("File.xml") dans avec C++

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown