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 :

Parser un fichier XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 115
    Par défaut Parser un fichier XML
    bonjour, j'ai quelques problèmes pour récupérer des valeur dans un fichier xml, en utilisant Qt, je n'arrive pas à parser ce type de fichier avec Qt, pouvez vous m'éclaircir sur ce point?

    Voici le fichier xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <database name=’Musique’>
    <album name = ’April Uprising’ artist = ’The John Butler Trio’ image = ‘Images/JBT.png‘ buy=’true’>
    <track number = ’01’ title = ’Revolution’ buy = ‘true’ interested = ‘true’/>
    ...
    </album>
    <album name = ’Junior’ artist = ’Kaki King’ image = ‘Images/KK.png’ buy = ’false’ interested = ‘true
    ...
    </album>
    </database>
    voici la partie de mon code qui parse le fichier xml:
    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
     
    Xml_Dom::Xml_Dom() : QWidget()
    {
     
    	QDomDocument dom("mon_xml");
    	QFile xml_doc("test.xml");
    	if(!xml_doc.open(QIODevice::ReadOnly))
    	{
    		QMessageBox::warning(this, "Erreur à l'ouverture du document XML", "Le document XML n'a pas pu etre ouvert. Verifiez que le nom est le bon et que le document est bien place");
    		return;
    	}
    	if (!dom.setContent(&xml_doc)) 
    	{
         xml_doc.close();
         QMessageBox::warning(this, "Erreur a l'ouverture du document XML", "Le document XML n'a pas pu etre attribue a l'objet QDomDocument.");
         return;
    	}
      unsigned int i=0;
      QString affichage;
      QDomNodeList tab;
      QDomElement album;
      QDomNode n;
      QMessageBox a(0);
      QDomElement racine = dom.documentElement();//renvoie la balise racine
      QDomNode noeud = racine.firstChild();//renvoie la 1ère balise « mesure »
     
      while(!noeud.isNull())
      {
    	//convertit le nœud en élément pour utiliser les
    	//méthodes tagName() et attribute()
    	album = noeud.toElement();
     
    	if (album.tagName() == "Musique")
    	{
    	  affichage = album.attribute("name");//récupère l’attribut
    	  tab = mesure.childNodes();//crée un tableau des enfants de « album »
    	  for(i=0;i<tab.length();i++)
    	  {
    		//pour chaque enfant, on extrait la donnée et on concatène
    		n = tab.item(i);
    		affichage = affichage + " " + n.firstChild().toText().data();
     
    	  }
    	  std::cout << qPrintable(affichage) << std::endl; on affiche pour voir si ça marche 
    	}
    	noeud = noeud.nextSibling();//passe à la “album” suivante
      }
    }
    Merci de votre compréhension

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Je sais pas si c'est le copier/coller qui a fait ça mais ton XML n'en est pas un ici (quotes bizarres et espaces).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 115
    Par défaut
    bonjour, voici le bon fichier xml:

    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <albums>
      	<album numero="1">
    		<name>
    			<name id = "0" value="April Uprising"/>
    		</name>
    		<artist>
    			<artist id = "0" value="The John Butler Trio"/>
    		</artist>
    		<track>
    	  		<track id = "1" value = "Revolution" />
    			<track id = "2" value = "House" />
    		</track>
    		<buy>
    			<buy id = "0" value="true"/>
    		</buy>
    		<interested>
    			<interested id = "0" value="true"/>
    		</interested>
    	</album>
     
    	<album numero="2">
    		<name>
    			<name id = "0" value="Junior"/>
    		</name>
    		<artist>
    			<artist id = "0" value="Kaki King"/>
    		</artist>
    		<track>
    	  		<track id = "1" value = "Paris" />
    			<track id = "2" value = "Young" />
    		</track>
    		<buy>
    			<buy id = "0" value="false"/>
    		</buy>
    		<interested>
    			<interested id = "0" value="false"/>
    		</interested>
    	</album>
     
    </albums>

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

Discussions similaires

  1. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32
  2. [xslt] Parser 2 fichiers XML
    Par malekms dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/12/2005, 12h22
  3. Parser un fichier XML
    Par Charlinecha dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 11/07/2005, 17h18
  4. [SAX] parser un fichier xml en Java
    Par royou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/02/2005, 17h12
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

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