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
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    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 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    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
    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