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 à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    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 à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    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
    Points : 15 920
    Points
    15 920
    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 à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    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 à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    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
    Points : 15 920
    Points
    15 920
    Par défaut
    Et pour le premier problème, quelle était la solution ?

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 16
    Points
    16
    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