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 :

parsing de XML


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut parsing de XML
    Bonjour,

    Je stocke dans une chaine de caractère de type char* un texte ayant la forme d'un xml. Par exemple :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <xml><header><version>1</version><app>2</app></header><data>coucou</data></xml>

    J'aimerai trouver une façon très simple d'extraire le contenu de version ou de app. J'ai regardé avec TinyXML mais apparemment il faut que l'input soit un fichier XML. Quelqu'un a une idée ?

    Merci et meilleures salutations
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Tu peux jeter un œil à Boost Property Tree (sans garantie).

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    TinyXml permet de lire à partir d'un const char*
    http://cs.brown.edu/courses/cs123/do...5570b2f3670289
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    oui j'ai vu par après que c'était possible avec tinyXML. Merci. cependant comme ce que je dois faire est très simple, je me posais la question si ce n'était pas mieux d'utiliser les regex pour faire ceci ?
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Tu hésites entre une regexp et un parsing XML ?!
    Alors là, faut qu'on m'explique
    Ce sont 2 choses qui n'ont absolument rien à voir.
    Si tu as une structure XML, lis du XML !
    Les regexp ont une toute autre utilisation qui leur est propre.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    Non biensûre je comprend mais le truc c'est que je trouve peut-être excessif d'intégrer tiny XML pour parser 2 balises XML.
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,
    Citation Envoyé par cyrill.gremaud Voir le message
    Non biensûre je comprend mais le truc c'est que je trouve peut-être excessif d'intégrer tiny XML pour parser 2 balises XML.
    Heuu, même comme cela, j'en compte 5, plus leur fermeture

    Si tu ne veux pas utiliser une bibliothèque XML pour parser du XML, peut être devrais tu envisager une autre solution pour stocker tes informations

    Parce que, malgré tout, il faut se dire que le XML est un format d'échange, traditionnellement utilisé pour permettre la communication entre plusieurs systèmes en assurant un minimum de compatibilité.

    Mais, pour générer ton format XML, tu disposes sans doute d'informations qui te permettent de le faire. Dés lors, pourquoi ne pas utiliser ces informations directement au lieu de passer ton temps à générer un format "XML like" et de le parser par la suite
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    ok et comment je pourrai simplement récupérer une valeur contenue dans une balise XML avec TinyXML si mon XML est un char* ?
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Allez hop, je viens faire un peu de pub pour pugixml :
    • Léger ( 1 header + 1 cpp, pas de DLL ! )
    • Simple ( un système de handlers simplissime et extrêmement puissant )
    • Rapide ( Régulièrement 1er sur tous les tests/comparatifs )


    Cet exemple colle assez bien à ta situation :
    http://pugixml.googlecode.com/svn/ta...mples/text.cpp
    Cf la doc très complète pour l'adapter à tes besoins.

  10. #10
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    Grande classe ! merci beaucoup c'est exactement ça que je cherchais !
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par cob59 Voir le message
    Rapide ( Régulièrement 1er sur tous les tests/comparatifs )
    Cela m'intéresse.
    Tu as une page web sous la main pour ces tests/comparatifs ?

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Honnêtement non

    J'ai fait quelques tests de mon côté avec les différents parsers DOM utilisés dans mon entourage professionnel (tinyxml, xerces, QtXml, boost, etc) et c'est très souvent pugixml qui l'emporte.

    Il existe un benchmark sur le site officiel qui le place dans le peloton de tête (v0.9, donc un vieux test) ; on peut bien sûr s'interroger sur l'objectivité du truc.

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

Discussions similaires

  1. VBA : problème parsing document XML
    Par duffman dans le forum Général VBA
    Réponses: 1
    Dernier message: 15/04/2009, 15h37
  2. [DOM] parsing de xml et traitement des données
    Par vincent62149 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 04/03/2008, 10h06
  3. [Web Service][NuSOAP] Erreur de parsing du XML
    Par binouzzz19 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/02/2008, 15h31
  4. script pour parsing fichier xml
    Par Melvine dans le forum Modules
    Réponses: 4
    Dernier message: 06/10/2006, 18h47
  5. [XHR]pb lors du parsing du XML(il n'existe pas)
    Par hansaplast dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/03/2006, 13h55

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