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++/CLI Discussion :

Extraire le contenu brut dans une balise xml


Sujet :

C++/CLI

  1. #1
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut Extraire le contenu brut dans une balise xml
    Bonjour à tous,

    J'ai un string contenant une balise de la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <y:txt xxxxx> contenu_txt </y:txt>
    Sans utiliser les méthodes qui parsent les fichiers xml, pourriez-vous me recommandez une méthode facile et efficace pour extraire le text: contenu_txt.

    Merci beaucoup d'avance pour vos retours !

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    Si tu es sûr du format :
    * sans C++ (en C) ni CLI (std::string.c_str ou char*) : deux strchr ?
    * en C++ et toujours pas CLI (std::string) : deux find_first_of ?
    * en C++/CLI (System::String) : deux IndexOf ?

    La version C sera la plus simple (mais non c'est pas du prosélytisme :p).

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 200
    Points : 12 354
    Points
    12 354
    Par défaut
    La version C sera la plus simple (mais non c'est pas du prosélytisme :p).
    C'est aussi la largement plus limité, quid de la gestion des CDATA, de l'encodage xml des caractères réservés, etc...

    Sans utiliser les méthodes qui parsent les fichiers xml,
    C'est vraiment chercher à s'emmerder pour rien.

    une méthode facile et efficace
    Bin, comme tu l'as dit implicitement, en utilisant les bibliothèques et classe de framework qui le feront toujours largement mieux qu'un pauvre code tout moisi fait sans même lire les spécification (imbuvables) de ce qu'est XML.

    Et quite à faire dans le cracra, les expressions régulières sont nos amis (et elles sont dans le C++ standard depuis C++11).

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est aussi la largement plus limité, quid de la gestion des CDATA, de l'encodage xml des caractères réservés, etc...
    Le CDATA n'a aucune incidence avec un strchr(GT) et un strrchr(LT). Pareil pour les caractères réservés échappés (l'OP veut une méthode simple, m'est avis qu'il veut justement éviter une usine à gaz qui fait l'interprétation car il n'en a pas le besoin). Reste le cas du strchr(GT) si un attribut a pour valeur une chaine contenant un GT non échappé (pas sûr que ce soit valide, à vérifier).

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 200
    Points : 12 354
    Points
    12 354
    Par défaut
    m'est avis qu'il veut justement éviter une usine à gaz
    Vu la simplicité des choses, c'est largement plus du NIH (not invented here) qu'autre chose.

  6. #6
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    J'utilise déjà un framework du parsing xml mais l'un des fichiers parsé contient des caractères spéciaux et des balises de mise en page HTML causant des problèmes au framework du parsing XML... c'est pourquoi je demande des méthodes autres que les méthodes du parsing et non plus la volonté de compliquer la vie

    Merci beaucoup pour vos retours, je pense que la méthode la plus pratique est d'utiliser les fonctions find et erase.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 200
    Points : 12 354
    Points
    12 354
    Par défaut
    Ok, @fraisa1985, tu te compliques pas inutilement la vie pour rien.
    J'ai tendance à prendre les outils de plus au niveau au lieu de me prendre la tête (l'optimisation, c'est après un truc qui fonctionne correctement).
    Donc, avec mon approche de fainéant, Je "corrigerais" le problème en amont, en rendant votre XML valide.
    Pour ce type de bidouille, XSLT est très pratique et permet d'avoir une "vue" assez explicite des changements effectuées.

  8. #8
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 492
    Points : 6 202
    Points
    6 202
    Par défaut
    Citation Envoyé par fraisa1985 Voir le message
    J'utilise déjà un framework du parsing xml mais l'un des fichiers parsé contient des caractères spéciaux et des balises de mise en page HTML causant des problèmes au framework du parsing XML...
    Si je comprends bien, dans le XML, on a des passages du genre <TRUC texte="<b>chose</b>"/>au lieu de <TRUC texte="&lt;b&gt;chose&lt;/b&gt;"/> ?
    Si c'est le cas, alors il y a de grosses bêtises à corriger en amont. En particulier :
    • S'il s'agit de gens qui ont édité le XML à la main, il faut corriger l'organisation et les faire passer par un outil.
    • S'il s'agit d'un outil fait maison qui écrit mal le XML, il faut reprogrammer l'outil et le faire utiliser des classes déjà existantes pour écrire des XML. Par exemple, il y en a dans Qt. Il y a aussi TinyXml.
    • S'il s'agit d'un fichier qui vient d'une source extérieur, par exemple un client, il faut peut-être essayer d'éduquer cette source extérieur à produire des fichiers XML corrects.
      Sinon, chaque fois qu'une nouvelle connerie apparaîtra dans un fichier XML reçu, cela demandera un nouveau développement ou de nouvelles corrections manuelles, ce qui coûtera de l'argent.
      D'ailleurs, l'éducation, ça doit se faire le plus tôt possible. Plus on attend, plus c'est difficile de demander de changer.

Discussions similaires

  1. Modification d'un élement dans une balise XML
    Par Krash66 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2009, 00h37
  2. Ajout aléatoire d'une String dans une balise XML à partir d'un tableau de String
    Par chebmo1986 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 19/03/2009, 12h21
  3. Obtenir le contenu intégral d'une balise XML
    Par black-falco dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 04/02/2009, 09h43
  4. [DOM4J] Récupérer un id dans une balise XML
    Par tiph02 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 15/01/2009, 17h16
  5. [XML][PHP]Extraire balise img dans une balise xml
    Par thierry232323 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/10/2006, 14h25

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