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++Builder Discussion :

[C++ builder 6]Problème de lecture de fichier XML


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut [C++ builder 6]Problème de lecture de fichier XML
    Bonjour,

    je n'arrive pas à utiliser correctement TXMLDocument pour lire des données XML.

    Le fichier XML m'est fourni par un webservcie.J'arrive bien à le récupérer, mais je n'arrive pas à accéder aux données.

    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
     
    TXMLDocument* doc = new TXMLDocument("");
    doc->DOMVendor = DOMVendors->Vendors[1]; //je ne saisis pas trop quel index je dois donner ici...
    doc->XML->SetText(retour);//retour est correctement défini ailleurs
    doc->XML->SaveToFile("tmp.xml");//j'enregistre dans un fichier pour vérifier que le code XML est bon (il l'est)
    if(!doc->IsEmptyDoc())
    {
    	doc->Active = true;
    	_di_IXMLNode racine = doc->DocumentElement->ChildNodes->GetNode(0);
    	ShowMessage(racine->ChildNodes->Nodes[WideString("FIELD")]->Attributes[WideString("LOG")]);
    }
    else
    {
         ShowMessage(doc->XML->GetText());
    }
    J'ai ajouté le test if(!doc->IsEmptyDoc()) sinon j'obtiens une violation d'accès sur di_IXMLNode racine = doc->DocumentElement->ChildNodes->GetNode(0);

    Et donc le code passe par le ShowMessage(doc->XML->GetText()) qui m'affiche bien le contenu XML...Il est donc considéré comme vide...mais pourquoi?

    Notez que je me suis inspiré du code donné par l'aide de C++ builder...

    Merci d'avance.

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    personnellement j'évite d'utiliser le TXMLDocument qui me semble assez buggé, j'utilise la librairie TinyXml pour lire le XML

  3. #3
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Ok merci de ta réponse.

    J'ai vu qu'il y avait un tuto sur développez sur tinyXML.


    Par contre j'ai vu ceci :
    La force de TinyXML réside dans sa légèreté et dans sa simplicité d'utilisation. Ainsi il pourra se révéler moins efficace, en terme de rapidité ou d'occupation mémoire, que d'autres outils d'analyse XML plus importants. C'est pourquoi TinyXML n'est pas forcément l'outil le mieux adapté pour la lecture de gros fichiers ; il reste toutefois idéal pour lire des petits fichiers XML (fichiers de configuration par exemple).
    Je vais surement avoir d'assez gros fichiers...Donc je ne sais pas si c'est vraiment la bonne solution...

  4. #4
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Effectivement, c'est à tester, je n'ai jamais testé sur de gros fichier, mais sur des fichiers de taille moyenne cela va bien, a toi de voir, je sais qu'il y a d'autre lib, mais personnellement je ne les connait pas

  5. #5
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Bon j'ai testé tinyxml je galère un peu car je m'y connais pas trop en XML mais ça a l'air de convenir. Je reviendrais si j'arrive pas ce que je veux faire

    Merci pottiez!

  6. #6
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Nickel j'ai réussi à faire ce que je voulais!
    Une seule chose me chagrine :

    Je ne trouve pas comment remplir un TiXmldocument sans passer par un fichier,car je récupère mon XML directement dans une chaîne de caractères....

    Avec TXMLDocument, je pouvais remplir le document par un SetText.

    Je passe donc par un TXMLDocument que je remplis avec SetText, je l'enregistre, puis j'ouvre le fichier avec le TiXmldocument...Pas très élégant quoi...

    Une idée?
    Merci!

  7. #7
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    tu as une méthode Parse dans le TiXmlDocument qui fait ce dont tu as besoin

  8. #8
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    En effet je suis passé complètement à côté

    Merci beaucoup pour ta rapidité pottiez!

  9. #9
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    De rien

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

Discussions similaires

  1. [DOM] probléme de lecture de fichier XML
    Par american dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 04/06/2010, 11h05
  2. [POI] Problème de lecture des fichiers Word
    Par Dari dans le forum Documents
    Réponses: 9
    Dernier message: 05/07/2007, 14h08
  3. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52
  4. Problème de lecture de fichier Excel
    Par cocaetjusdorange dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2006, 11h08
  5. Problème de lecture de fichier Oracle 9.2
    Par fortlow dans le forum Oracle
    Réponses: 4
    Dernier message: 14/11/2005, 16h48

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