Construction de documents XML en langage C
De Wicri Manuel
Révision datée du 24 juin 2020 à 15:53 par imported>Jacques Ducloy (→Concaténation)
| 
 Construction de documents XML en langage C < = Exploration d'un document de métadonnées en langage C  | 
Sommaire
Le type Buffer
La construction de documents demande souvent l'élaboration de chaînes. La gestion des chaînes de longueur variables est relativement difficiles à gérer en langage C.
Un type Buffer a été introduit pour simplifier ce type de tâche.
Une documentation technique est disponible sur Wicri/Outils.
Exemple introductif
En pratique ces objets ne se manipulent que par des pointeurs. Voici un exemple du calcul d'une url utilisant un Buffer.
#include "Buffer.h"
Buffer *bufUrl;
char *myPage;
 ...
bufUrl=NewBuffer();
BufferStrcpy(bufUrl,"http://myWebSite/");
BufferStrcat(bufUrl,myPage);
printf ("<a href=\"%s\">Pour aller sur %s</a>", BufferString(bufUrl), myPage);
Déclaration et création
L'utilisation des Buffers demande l'appel du ficher "Buffer.h".
Ces structures doivent être explicitement crées avec la fonction NewBuffer().
- Dans un programme principal
 
#include "Buffer.h"
 ...
main() {
 ...
Buffer *bufUrl;
 ...
bufUrl=NewBuffer();
 ...
- Dans une fonction
 
#include "Buffer.h"
 ...
 int maFonction ( ... ) {
 static Buffer *monBufferLocal = NULL; /* déclare le Buffer avec un pointeur NULL */
 ...
 if (! monBufferLocal) monBufferLocal = NewBuffer(); /* création au premier appel */
Opérations sur un Buffer
Copie
Concaténation
BufferStrcat- ajoute une chaîne de caractères à la fin du Buffer.
 - Synopsis
 
char *BufferStrcat(Buffer *b, char *str)
- Paramètres
 - b un Buffer,
 - str la chaîne à concaténer.