Bonjour,

Je dois mettre à jour un programme en C utilisant diverses libraires XML.
Ce programme est donc devenu obsoléte car elle fais appel à des éléments de structure qui ne semble plus exister.


Voici le bout du programme actuel sur lequel j'ai eu un probleme :
(doc est de type xmlDoc)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if (!doc->root || !doc->root->name || strcmp(doc->root->name, XML_ROOT)!=0) {
        xmlFreeDoc(doc);
        return -1;
    }
Erreur de compilation pour cette partie : pas de menbre root

Voici la modification que j'ai apporté apres avoir lu plusieurs documents sur le net :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if (!doc->children || !doc->children->name || strcmp(doc->children->name, XML_ROOT)!=0) {
            xmlFreeDoc(doc);
            return -1;
        }
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
ERREUR : ../src/configure.c:165: attention : pointer targets in passing argument 1 of strcmp differ in signedness

j'ai remplacé root par children donc.

Ce que je souhaiterai savoir c'est : Est ce que cela est bien équivalent à l'ancien "->root" car il est dit que children pointe sur le 1er fils.

Voici les éléments de la structure xmlDoc qui se situe dans la librairie tree.h:

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
void *  _private 
xmlElementType  type 
char *  name 
struct _xmlNode *  children 
struct _xmlNode *  last 
struct _xmlNode *  parent 
struct _xmlNode *  next 
struct _xmlNode *  prev 
struct _xmlDoc *  doc 
int  compression 
int  standalone 
struct _xmlDtd *  intSubset 
struct _xmlDtd *  extSubset 
struct _xmlNs *  oldNs 
const xmlChar *  version 
const xmlChar *  encoding 
void *  ids 
void *  refs 
const xmlChar *  URL 
int  charset 
struct _xmlDict *  dict 
void *  psvi 
int  parseFlags 
int  properties