Problème SAX: enregistrement données fichiers -> std::list
Bonjour, voici mon problème:
J'ai une classe PiloteSAXListeVins:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
#include "PiloteSAX.hpp"
#include <xercesc/sax2/Attributes.hpp>
#include <map>
#include <string>
class PiloteSAXListeVins: public PiloteSAX
{
public:
void startElement(const XMLCh * const uri, const XMLCh * const localname, const XMLCh * const qName, const xercesc::Attributes & attrs);
}; |
et une classe ListeVins:
Code:
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
|
#include "PiloteSAXListeVins.hpp"
#include <string>
#include <list>
#include <fstream>
#include <set>
#include <vector>
#include "Vin.hpp"
#include "PlateformeSAX.hpp"
class ListeVins
{
PiloteSAXListeVins sonPiloteSAX;
PlateformeSAX * saPlateformeSAX;
public:
std::list<Vin> sesVins;
...
}; |
Voici la fonction surchargée startElement de la classe PiloteSAXListeVins:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
void PiloteSAXListeVins::startElement(const XMLCh * const uri, const XMLCh * const localname, const XMLCh * const qname, const xercesc::Attributes & attrs)
{
if((xercesc::XMLString::equals(localname,ptX_de_str("vin"))))
{
std::string nom=str_de_ptX(attrs.getValue(ptX_de_str("nom")));
std::string annee=str_de_ptX(attrs.getValue(ptX_de_str("annee")));
std::string qt=str_de_ptX(attrs.getValue(ptX_de_str("quantite")));
std::string coul=str_de_ptX(attrs.getValue(ptX_de_str("couleur")));
Couleur laCouleur=Vin().retCouleur(coul);
ListeVins v1;
v1.sesVins.push_back(Vin(nom, annee, qt, laCouleur));
//std::cout << v1.sesVins.size() << '\n';
}
ListeVins v2;
//std::cout << v2.sesVins.size() << '\n';
return; |
Voici maintenant le problème:
Les éléments inséré dans la list disparaissent dès la sortie du if.
J'ai l'impression que ça vient du fait que la list SesVins est dans la classe ListeVins (même si elle est en public).
Comment puis-je faire en sorte que les élements restent dans la list apres être sortie du if et de la fonction startElement?
Merci.
}