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

XML Discussion :

Lecture de trame xml avec SAX


Sujet :

XML

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Par défaut Lecture de trame xml avec SAX
    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.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Par défaut
    J'effectue ce code et ça fonctionne
    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
    char * str_replace(const char *from, const char *to, const char *src)
    {
    	char *result, *temp, *needle;
    	int count, length;
     
    	length = strlen(src);
     
    	if (strlen(from) < strlen(to))
    	{
    		count = 0;
    		temp  = (char *) src;
     
    		while ((needle = strstr(temp, from)))
    		{
    			temp = needle + strlen(from);
    			count++;
    		}
     
    		length += strlen(src) + (strlen(to) - strlen(from)) * count;
    	}
     
    	result = (char *) malloc(sizeof(char) * (length + 1));
    	memset(result, 0, sizeof(char) * (length + 1));
     
    	temp = (char *) src;
    	while ((needle = strstr(temp, from)))
    	{
    		length = needle - temp;
    		strncat(result, temp, length);
    		strcat(result, to);
    		temp = needle + strlen(from);
    	}
     
    	strcat(result, temp);
     
    	return result;
    }
    mais je pense qu'il doit y avoir plus rapide

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

Discussions similaires

  1. Lecture d'un Asset XML avec SAX
    Par Linio dans le forum Android
    Réponses: 6
    Dernier message: 29/12/2011, 12h13
  2. [SAX] Lecture de fichier XML avec l'API SAX
    Par SMinet dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 20/10/2009, 16h19
  3. [SAX] Erreur de parsing XML avec SAX
    Par philobedo dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 02/08/2006, 13h49
  4. [SAX] Java : problème de lecture d'XML avec SAX
    Par TheReturnOfMuton dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 22/06/2006, 18h26
  5. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52

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