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 :

Problème de désérialisation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut Problème de désérialisation
    Bonjour,

    J'utilise un fichier xml de ce type pour stocker mes informations.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0"?>
    <clients>
      <client numero="1">
        <Society_name Sociéte="****">
          <Produit Product n°="0">
            <name>***</name>
            <Key>***</Key>
            <Date>**/**/****</Date>
          </Produit>
        </Society_name>
      </client>
    </clients>

    J'utilise pour lire la classe suivante calqué sur l'un des tuto présent sur le site.

    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
    UnSerializer::UnSerializer()
    {
            QFile file("clients_liste.xml");
            if (!file.open(QIODevice::ReadOnly))
                    return ;
            if (!doc.setContent(&file))
            {
                    file.close();
                    return ;
            }
            file.close();
    }
     
    UnSerializer::~UnSerializer()
    {}
     
    void UnSerializer::lire()
    {
            int i=0;
            QDomNodeList tab;
            QDomElement _client;
            QDomNode n;
            QDomNode n1;
            QDomNode n2;
            QDomElement racine = doc.documentElement(); // renvoie la balise racine
            for(QDomNode n = racine.firstChild(); !n.isNull(); n = n.nextSibling())
             {
                _client = n.toElement();
                if (_client.tagName() == "client")
                {
                    std::cout << "client numero :" << _client.attribute("numero").toStdString() << std::endl;
                    QDomElement _society = _client.firstChildElement("Society_name");
                    for (; !_society.isNull(); _society = _society.nextSiblingElement("Society_name"))
                    {
                        std::cout << "Société :" << _society.attribute("Sociéte").toStdString() << std::endl;
                        std::cout << _society.hasChildNodes() << std::endl;
                        tab = _society.childNodes();
                        if(tab.isEmpty())
                            std::cout << "null" << std::endl;
    //                    QDomElement _Produit = _society.firstChildElement("Produit");
    //                    if (_Produit.isNull())
    //                        std::cout << "test" << std::endl;
    //                    for(; !_Produit.isNull(); _Produit=_Produit.nextSiblingElement("Produit"))
    //                        std::cout << _Produit.attribute("Product n°").toStdString() << std::endl;
                    }
                }
             }
    Mon problème se situe lorsque j'arrive sur la balise "Society_name", j'ai fais plusieurs tests et a chaque fois j'obtiens qu'il n'existe pas de child.
    Du coup impossible de récupérer ce qui se trouve en dessous et je ne sais vraiment pas d’où ça peut venir.

    Merci d'avance à ceux/celles qui pourront m'aider a me débloquer

  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
    Ça marcherait si c'était vraiment un XML en entrée, là ton fichier n'est pas valide.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut
    Merci pour ta réponse.

    Quel est le problème de mon document xml ??

  4. #4
    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 ne voulais pas te faire l'insulte de te le dire, ton exemple n'est pas au format XML et il est donc incompréhensible par un parseur, juste relis-le ou passe-le dans un validateur, ouvre-le dans IE... Pas compliqué de respecter <Element attribut="valeur"><Element2 /></Element> quand même ? Ensuite on pourra discuter des éventuels problèmes avec Qt.

Discussions similaires

  1. [JSON] Problème de désérialisation
    Par titi42 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 02/11/2011, 18h09
  2. Problème de désérialisation xml
    Par the_ben1 dans le forum C#
    Réponses: 4
    Dernier message: 14/10/2010, 14h34
  3. [Débutant] Problème Sérialisation/Désérialisation
    Par sorry60 dans le forum Silverlight
    Réponses: 29
    Dernier message: 25/06/2010, 11h34
  4. Problème de désérialisation
    Par jabaka dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/09/2008, 14h01
  5. [Skaringa] Problème de désérialisation
    Par ploxien dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 15/05/2007, 09h29

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