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

Discussion :

Transformer un fichier XML en HTML

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Transformer un fichier XML en HTML
    Bonjour à tous, je débute actuellement avec le langage QT et je dois développer un petit programme parsant un fichier xml en fichier html, mais le problème c'est que je ne vois pas du tout comment m'y prendre pour récuperer la chaîne de caractères et la modifiée en fonction de ce que c'est. Ex: <image> en xml doit devenir <img> en html.

    Voici le début de programme que j'ai commencé:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <QApplication>
    #include <QTextEdit>
    #include <QFile>
    #include <QString>
    #include <QTextStream>
     
    int main (int argc, char **argv)
     
    {
     
        QApplication a(argc, argv);
        QTextEdit zoneTexte;
        zoneTexte.setGeometry(100,100,400,200);
        zoneTexte.setReadOnly(true);
     
        QString texte;
        QFile fichier("projet.xml");
     
        if(fichier.open(QIODevice::ReadOnly)) //...
        {
             texte = fichier.readAll();
             fichier.close();
             QFile file("projet.html");
             if (file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text))
             {
                 QTextStream out(&file);
     
             file.close();
             }
             QTextStream out(&file);
        }
        else texte = "Impossible d'ouvrir le fichier !";
     
     
     
        zoneTexte.setText(texte);
        zoneTexte.show();
        return a.exec();
     
    }

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Le plus simple est d'utiliser un moteur d'expression régulière, qui te permettra de détecter les occurrences et de les remplacer. Il y en a un avec Qt et sur le site developpez, un tutoriel qui y est consacré:
    http://shugo.developpez.com/tutoriels/regexqt/ Je ne sais pas si les regex de Qt permettent d'utiliser un dictionnaire entre clé à remplacer et valeur de remplacement, tu devrais jeter un oeil à la documentation de Qt, d'autant que le tutoriel commence à être un peu ancien.

    Sinon tu as un moteur de regex dans Boost qui est capable de faire ça très bien, Boost::Xpressive Tu as un exemple de remplacement de strings par un dictionnaire dans le blog de l'auteur: http://ericniebler.com/2010/09/27/boost-xpressive-ftw/ La difficulté c'est que cela ne fonctionne probablement pas avec Qstring. Cela dit, comme il s'agit d'un traitement de fichier à fichier, il ne t'est pas nécessaire d'utiliser les classes Qt: tu peux utiliser localement boost et la librairie standard sans toucher au reste de ton appli.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci je vais voir cela tout de suite =)

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 601
    Points
    188 601
    Par défaut
    Si tu cherches à faire des remplacements aussi simples, pas besoin d'aller jusque des expressions régulières, tu peux utiliser http://doc.qt.io/qt-5/qstring.html#replace-8 (remplacement d'une chaîne de caractères par une autre).

    Autre solution possible : passer par une feuille XSLT. Ça fait un autre langage à apprendre, certes, mais ça pourrait être plus propre pour des transformations plus compliquées. Ensuite, tu peux exploiter Qt XML Patterns http://doc.qt.io/qt-5/qtxmlpatterns-index.html.

    Quatrième solution, plus pour être complet que par pragmatisme : par désamour de XML, ce qui est actuellement maintenu dans Qt, c'est http://doc.qt.io/qt-5/qxmlstreamreader.html pour la lecture. Tu peux l'exploiter et réécrire petit à petit ton fichier en sortie.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. [XSL] Transformation d'un tableau (fichier xml vers html)
    Par Bananou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/04/2010, 12h03
  2. [DOM] Transformer un fichier un fichier XML en HTML avec XLS
    Par saranave dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 31/10/2007, 11h50
  3. Réponses: 2
    Dernier message: 03/04/2007, 14h14
  4. [XSL] comment transformer ce fichier xml en une table html ?
    Par jlassira dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 15/03/2006, 12h15

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