alors c'est assez dur à expliquer comme ça, donc je vais utiliser directement le cas sur lequel je suis !

je recois un message XML dans un string qui a cette tête :
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
 
<Alien-RFID-Reader-Auto-Notification>
  <ReaderName>xxxr</ReaderName>
  <ReaderType>xxxx</ReaderType>
  <IPAddress>xxx.yyy.zzz.www</IPAddress>
  <CommandPort>ab</CommandPort>
  <MACAddress>xx:xx:xx:xx:xx:xx</MACAddress>
  <Time>...</Time>
  <Reason>...</Reason>
  <StartTriggerLines>..</StartTriggerLines>
  <StopTriggerLines>..</StopTriggerLines>
<Alien-RFID-Tag-List>
<Alien-RFID-Tag>
  <TagID>...........</TagID>
  <DiscoveryTime>......</DiscoveryTime>
  <LastSeenTime>.....</LastSeenTime>
  <Antenna>...</Antenna>
  <ReadCount>..</ReadCount>
  <Protocol>...</Protocol>
</Alien-RFID-Tag>
<Alien-RFID-Tag>
...
</Alien-RFID-Tag>
...
<Alien-RFID-Tag>
...
</Alien-RFID-Tag>
</Alien-RFID-Tag-List>
</Alien-RFID-Reader-Auto-Notification>
comme vous le constater, j'ai un gros ensemble (notification), qui un contient un autre (taglist) qui peut en contenir plusieurs (Tag).
Le truc c'est que je cherche à parser ce xml (on m'a conseillé TinyXML pour ça) mais je voudrais récupérer les information dans un objet.

la situation est maintenant posée. Passons au problème maintenant :
Je cherche donc à créer une classe que le parseur me remplira.
j'ai donc fait quelque chose de ce style :
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
class Notify
{
    private:
 
    std::string readername;
    std::string readertype;
    std::string ipaddress;
    int commandport;
    std::string macaddress;
    std::string time;
    std::string reason;
    std::string starttriggerlines;
    std::string stopttriggerlines;
 
 
};
 
class Tag
{
    private:
 
    std::string tagid;
    std::string discoverytime;
    std::string lastseentime;
    int antenna;
    int readcount;
    int protocol;
 
 
};
la classe Notify me sert pour l'ensemble du message, la classe tag pour chaque tag que je peux avoir dedans.


mais le problème, comment lier les deux ? Comment dire à la classe Notify quelle peut avoir un ou plusieurs objets de type Tag, mais que c'est le parseur qui décidera combien ?


en résumer, ça donne comment parser correctement ce message de m**** ?

merci d'avoir lu jusqu'ici et d'essayer de m'aider.