Bonjour,
Je travaille sur un projet en C où je dois récupérer des trames xml via une connexion UDP.
Je dois ensuite récupérer les informations pour instancier un objet de type structure .
J'utilise SAX car je perdais trop de données en utilisant DOM.
Le problème c'est que j'en perds encore quelques unes .
Les trames que je récupère comprennent des '\t','\n',
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<message name="typicalGyro" major="1" minor="0" deviceid="PP_PHINS">  
      <gyro acquisitiontime="039315.3096746">
                <head>000.00</head>
      </gyro>
</message>
ce qui fait que la fonction qui récupère les caractères
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void Characters(void *ctxt, const xmlChar *ch, int len)
 {
 	strcpy(charBuf,ch);
 }
/*appelée depuis main() par*/
sax.characters = Characters;
/*sax étant un ojet de type xmlSAXHandler*/
est appelée entre chaque élément ce qui me fait perdre du temps. Je pense que je pourrais gagner du temps en enlevant les tabulations et sauts de ligne de mon buffer de réception (RecvBuf) pour obtenir une trame sur une seule ligne ce qui empêcherait la fonction Characters d'être appelée à chaque fois .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?xml version="1.0" encoding="UTF-8"?><messagename="typicalGyro"major="1" minor="0"deviceid="PP_PHINS"><gyro acquisitiontime="039315.3096746"><head>000.00</head></gyro></message>
Comment enlever ces tabulations et sauts de lignes avec le code le plus rapide possible.