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 :

génération document XML en c++


Sujet :

C++

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Par défaut génération document XML en c++
    Bonjour,

    je souhaite générer un fichier xml avec xercesc 2.7 en c++ mais sans aucune indentation est mise en page.

    Or la génération actuelle donne une mise en page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <maBalisePrincipale xmlns="http://www.w3.org/2001/XMLSchema-instance">
       <maBalise2>
         <toto>
          <Identifiant>CT_SV40_PM1_P_001_03</Identifiant>
          <NumeroVersion>1</NumeroVersion>
          <NomSatellite>SYR3B</NomSatellite>
        </toto>
      <maBalise2>
    </maBalisePrincipale>
    ce que je souhaite :

    <?xml version="1.0" encoding="UTF-8" standalone="no" ?><maBalisePrincipale xmlns="http://www.w3.org/2001/XMLSchema-instance"><maBalise2><toto> <Id>tutu</Id><Numero>1</Numero><NomSatellite>SYR3B</NomSatellite></toto></maBalise2></maBalisePrincipale>


    Quelles sont les settings à appliquer au DOMWriter ou au DOMDocument pour générer ce fichier sans saut de ligne ni espaces?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Par défaut
    Pourquoi ne pas retirer les (\r)\n du résultat tout simplement ?

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Et, surtout, pourquoi tiens tu à supprimer la "mise en page"

    Après tout :
    • Les applications qui devront lire ton fichier xml se foutent pas mal de la mise en page
    • Si tu veut simplement éditer le fichier xml dans un éditeur de texte "classique", tu auras beaucoup plus facile à t'y retrouver si une certaine mise en page est respectée
    Tu te fais donc du mal pour rien en voulant supprimer cette mise en page

    Si ton but est de rendre le fichier illisible par "l'humain", peut etre t'es tu simplement trompé dans ton choix du format xml et devrais tu envisager une autre forme de sérialisation
    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

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Par défaut
    Bonjour,

    pour des contraintes logicielles, je dois utiliser xerceces car je travaille ensuite sur le fichier.

    Je souhaite savoir s'il existe des options spécifiques ou des settings à appliquer au DOMDocument, DOMNode, DOMWriter... pour éviter de générer cette mise en page

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Franckerbo Voir le message
    Bonjour,

    pour des contraintes logicielles, je dois utiliser xerceces car je travaille ensuite sur le fichier.

    Je souhaite savoir s'il existe des options spécifiques ou des settings à appliquer au DOMDocument, DOMNode, DOMWriter... pour éviter de générer cette mise en page
    Pourrais tu en dire plus sur les "contraintes logicielles"

    Car, si c'est pour un problème de place utilisée par le fichier, franchement, à coup de tabulation / retour à la ligne, tu ne vas pas gagner grand chose à les supprimer, et, à partir du moment où tu dois utiliser xerces, je vois mal ce qui pourrait justifier le fait que cette mise en forme pose problème

    Ceci dit, peut etre qu'un simple script utilisant sed sur le fichier une fois qu'il a été écrit pourrait te suffire, si le fichier est souvent lu et rarement réécrit
    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

  6. #6
    Membre émérite

    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
    Par défaut
    Sous pugixml (qu'on ne vantera jamais assez) il suffirait de passer un flags pugi::format_raw au moment de sauvegarder pour virer les tabulations et les newline. Peut-être qu'un equivalent existe pour Xerces ?

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Par défaut
    Citation Envoyé par cob59 Voir le message
    Sous pugixml (qu'on ne vantera jamais assez) il suffirait de passer un flags pugi::format_raw au moment de sauvegarder pour virer les tabulations et les newline. Peut-être qu'un equivalent existe pour Xerces ?
    C'est exactement ça qu'il me faut pour xercesc, mais je n'ai pas encore trouvé...

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Par défaut
    Ceci dit, peut etre qu'un simple script utilisant sed sur le fichier une fois qu'il a été écrit pourrait te suffire, si le fichier est souvent lu et rarement réécrit
    Je pourrais recharger le fichier et lui appliquer un script mais je pense vraiment qu'il doit y avoir une option pour le formater correctement dès le départ et ainsi gagner du temps...

  9. #9
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Google > xerces format output file > http://xerces.apache.org/xerces-c/ap...erializer.html
    "format-pretty-print" true [optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Pretty-printing changes the content of the document and may affect the validity of the document, validating implementations should preserve validity. false [required] (default) Don't pretty-print the result.
    http://xerces.apache.org/xerces-c/ap...iguration.html

    ça y ressemble plus que vaguement non ?
    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.

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Par défaut
    Merci pour votre aide, j'ai trouvé l'option qui me permet de faire ce que je veux :

    if (pDOMWriter->canSetFeature(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint, false))
    {
    pDOMWriter->setFeature(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint, false);
    }

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/03/2015, 20h29
  2. Génération Documentation XML
    Par kevin01330 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 13/05/2013, 15h48
  3. [MySQL] Génération d'un document XML mais ma page reste blanche
    Par LN69 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/06/2008, 12h14
  4. Réponses: 1
    Dernier message: 04/09/2006, 10h44
  5. [.NET] Génération d'un document XML
    Par bart64 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/05/2005, 13h56

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