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

XML Discussion :

problème pour loader un fichier xml via la nouvelle version de tinyxml


Sujet :

XML

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut problème pour loader un fichier xml via la nouvelle version de tinyxml
    Bonjour,
    J’ai changé la version de tinyxml du projet et en transformant des variables const std::string * en const char* car la nouvelle version l’exigeai et la compilation ce passe sans problème.

    Par contre à l’exécution il ne trouve plus mes fichiers *.xml (alors qu’avec l’ancienne version de tinyxml cela fonctionnait).

    L’objet doc renvoie toujours une erreur à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!doc || !doc->LoadFile() || !doc->Error())
    exemple d'erreur renvoyée:

    + doc 0x00b975b8 {error=false errorId=0 errorDesc={npos=4294967295 rep_=0x00550c20 struct TiXmlString::Rep TiXmlString::nullrep_ nullrep_={size=0 capacity=0 str=0x00550c28 "" } } ...} TiXmlDocument *
    voici le code de la fonction:
    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
    bool CTranslation::GetNameLanguageFile(char* szFileName, char* szNameLanguage)
    {
    	const char* szTmp;
     
    	if (!szFileName || strcmp(szFileName, "") == 0)
    		return false;
     
    	// Check if the file is really existing
    	TiXmlDocument* doc = new TiXmlDocument(szFileName);
    	if (!doc || !doc->LoadFile() || !doc->Error())
    		return false;
     
    	// Load the informations contained in the xml file
    	TiXmlNode*		xmlNode			= doc->FirstChild("MeuhMeuhTV");
    	TiXmlElement*	xmlTopElement	= NULL;
    	strcpy(szNameLanguage, "");
     
    	if (xmlNode)
    	{
    		xmlTopElement = xmlNode->ToElement();
     
    		if (szTmp)
    			strcpy(szNameLanguage, szTmp);
     
    	}
     
    	delete doc;
     
    	return (strcmp(szNameLanguage, "") != 0);
    }
    Il est à noté que "szFileName" donne bien la bonne adresse d'un fichier xml existant (ex: "c:\moi.xml" )

    Merci de bien vouloir m'aider à trouver d'où vient le problème.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    J'ai créer un nouveau mini projet le voici:
    // Il s'agit du fichier projet principal pour le projet d'application VC++
    // généré en utilisant un Assistant Application.

    #include "stdafx.h"
    #include <stdio.h>
    #include "C:\Documents and Settings\Administrateur\Bureau\Nouveau dossier (10)\TINYXML\tinyxml.h"
    #using <mscorlib.dll>
    using namespace std;
    using namespace System;

    int _tmain()
    {
    // TODO : remplacez l'exemple de code ci-dessous par votre code.
    TiXmlDocument doc("c:\Francais.xml");
    if(!doc.LoadFile()){
    Console::WriteLine(S"Pas de fichier");

    return 1;
    }
    Console::WriteLine(S"Fichier chargé");

    }
    A chaque fois il me dit qu'il n'y a pas de fichier alors que "c:\Francais.xml" existe

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    J’ai changé la version de tinyxml du projet et en transformant des variables const std::string * en const char* car la nouvelle version l’exigeai et la compilation ce passe sans problème.
    Il y a une macro à définir pour le support de std::string.

    A chaque fois il me dit qu'il n'y a pas de fichier alors que "c:\Francais.xml" existe
    Essaye "C:\\Francais.xml" ou encore "C:/Francais.xml".

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    Merci pour ton aide mais malheureusement cela ne fonctionne toujours pas.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    J'ai avancé, en fait j'ai des é, des è ... qui empêche la lecture du fichier.
    Ma question est maintenant,que doit-on faire sur le document et ou dans le code source pour que ces caractères puissent passer car là ça empêche la lecture complet du fichier.

    merci.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    C'est résolu, il fallait mettre sur la première ligne :
    encoding="ISO-8859-2"

    Cela fonctionnait sans cet ajout sur les premières version tinyxml mais pas sur la dernière.

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et pour le premier problème, quelle était la solution ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    Il n'y avait en fait qu'un seul problème (sauf le fait que j'ai dû changer certain std::string* en char* et tout ce qui va avec) .
    Pour mes deux premiers post j'avais utilisé le même fichier xml et comme celui-ci ne respectait la norme, la nouvelle version de tinyxml refusait de faire un LoadFile().

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

Discussions similaires

  1. Problème pour lire un fichier Xml avec Xpath
    Par adrix26 dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/11/2008, 17h06
  2. [DOM4J] Problème pour "parser" un fichier XML avec accents
    Par mlny84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 26/11/2007, 19h06
  3. [JDOM] Problème pour parser un fichier XML [débutant]
    Par adn013 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/05/2007, 12h00
  4. [C#] Problème pour lire un fichier xml
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/06/2006, 23h12
  5. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32

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