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 :

Questions sur QXmlStreamReader et sur les Regexp

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Points : 36
    Points
    36
    Par défaut Questions sur QXmlStreamReader et sur les Regexp
    Bonjour,

    j'ai deux questions sur deux sujets différents.

    1ere question :
    j'ai regardé la faq qt sur la partie "lire un fichier xml avec QXmlStreamReader" et je ne comprends pas comment il boucle.
    car appliqué à l'exemple ci desous:
    <root>
    <model>
    <id>1</id>
    <name>julien</julien>
    </model>
    <model>
    <id>1</id>
    <name>julien</name>
    </model>
    </root>

    il ne trouve que le premier "<model>".
    (ce serait plus facile si je copiais le code mais mon pc de travail n'a pas accés au net)

    est ce que l'exemple donné par la faq est correct ? (ou est ce que mon fichier xml est correct ?)

    2ème question :

    j'ai un QString contenant une date "02/03/06"
    j'aimerai avec une expression régulière (ou un ensemble d'expressions) récupérer dans 3 QStrings "02" "03" "06".

    j'ai besoin de faire beaucoup de manipulations de dates et d'heures.

    est ce que vous auriez un exemple à me proposer ? j'ai regardé rapidement la doc de QT mais j'ai pas du tout compris le fonctionnement sous QT. (j'en ai déjà utilisés avec php)

    Merci,
    bonne journée.
    Julien

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Y as une erreur sur ton xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <root>
    <model>
    <id>1</id>
    <name>julien</julien>
    </model>
    <model>
    <id>1</id>
    <name>julien</name>
    </model>
    </root>
    Sinon, normalement oui le code de la FAQ est correcte.

    J'ai essayé de faire un code pour tester comment ça fonctionne
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #include <QtCore>
     
    int main(int argc, char **argv)
    {
     
    	QString file("<root>"
    		"<site>"
    			"<nom>developpez</nom>"
    			"<url>www.developpez.com</url>"
    		"</site>"
    		"<contributeurs>"
    			"<contributeur>"
    				"<nom faq=\"c++\" responsabilite=\"Responsable\">Alp</nom>"
    			"</contributeur>"
    			"<contributeur>"
    				"<nom faq=\"Qt\" responsabilite=\"moderateur\">Mongaulois</nom>"
    			"</contributeur>"
    		"</contributeurs>"
    	"</root>");
     
    	 QXmlStreamReader reader(file);//Objet servant à la navigation
     
     
    //Le but de cette boucle est de parcourir le fichier et de vérifier si l'on est au debut d'un element.
    int nbTab(0);
    while (!reader.atEnd())
    {
    	QXmlStreamReader::TokenType t = reader.readNext();
    	QString name = reader.name().toString () ;
    	QString s;
    	switch (t)
    	{
    	case QXmlStreamReader::StartElement :
    			s = "atr :";
    			for(int i=0;i<nbTab;++i) s+="   ";
    			foreach(QXmlStreamAttribute atr, reader.attributes())
    			{
    				s+= atr.name().toString() + "<=>" +atr.value().toString() + "   ";
    			}
    			qDebug() << s;
    			nbTab ++;
    			break;
     
    	case QXmlStreamReader::EndElement :
    			nbTab --;
    			break;
     
    	case QXmlStreamReader::Characters :
    		QString s = "Char :";
    		for(int i=0;i<nbTab;++i) s+="   ";
    		s+=reader.text();
    		qDebug() << s;
    		break;
    	}
    }
    return 0;
    };

  3. #3
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Oui je comfirme aussi que le code de la FAQ est correct.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/03/2007, 19h18
  2. Réponses: 3
    Dernier message: 16/02/2007, 12h35
  3. question idiote sur terme utilisé dans les offres
    Par coyott dans le forum Emploi
    Réponses: 4
    Dernier message: 24/08/2005, 17h16
  4. [Débutant] Question de base sur le BDE et les SGBD
    Par Invité dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/03/2005, 08h45
  5. question (peut-être idiote) sur les vues
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/03/2003, 10h35

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