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

Bibliothèques, systèmes et outils C Discussion :

libxml2 et xmlChar


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Points : 39
    Points
    39
    Par défaut libxml2 et xmlChar
    bonjour,

    j' apprend à utiliser la libxml mais je bloque sur des warnings lors de l' appel à la fonction xmlNewNode, utilisé simplement de cette façon :
    ptr = xmlNewNode (NULL, "test");

    Voici ce que j' obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pointer targets in passing argument 2 of ‘xmlNewNode’ differ in signedness
    expected ‘const xmlChar *’ but argument is of type ‘char *’
    Le type xmlChar est défini en tant que const unsigned char.
    Viennent alors ces questions :
    1 : comment éviter ces warnings ? (je ne dois tout de même pas faire un cast ?)
    2 : pourquoi la définition d' un type en unsigned puisque le rôle de cette fonction s' assimile à gérer une chaîne de caractère, et non un nombre ?
    3 : pourquoi la fonction demande une const xmlChar, alors que xmlChar dérive (si je puis dire ainsi) d' une constante ?
    et 4 : le compilateur me dit que mon deuxième argument est de type char *, pourtant il est de type const char* non ?

    je vous remercie d' avance,
    cordialement

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    1. J'ai bien peur qu'il faille un cast, il n'y a pas de compatibilité entre pointeur sur unsigned char et pointeur sur char.
    2. C'est plus pratique parce que le code d'un caractère est un nombre non-signé. Le problème vient du fait que char soit signé par défaut, et certains compilateurs possèdent une option pour changer cela.
    3. La fonction ne "demande" pas const xmlChar; elle demande seulement des xmlChar tout en promettant de ne pas les modifier.
    4. Pour des raisons historiques, les chaînes littérales, bien que stockées en mémoire constante, ne sont pas déclarées const. Sous gcc, l'option -Wwrite-strings permet de corriger ça; elle n'a pas d'équivalent sous Visual.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par echantillon Voir le message
    1 : comment éviter ces warnings ? (je ne dois tout de même pas faire un cast ?)
    Citation Envoyé par Médinoc Voir le message
    J'ai bien peur qu'il faille un cast, il n'y a pas de compatibilité entre pointeur sur unsigned char et pointeur sur char.
    http://xmlsoft.org/html/libxml-xmlstring.html#BAD_CAST
    Cordialement.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Points : 39
    Points
    39
    Par défaut
    @Medinoc : merci pour tes précisions.
    @ nicolas.sitbon : merci pour le lien, j' ai donc corrigé mon problème avec xmlCharStrdup (const char *)

    ,
    echantillon

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

Discussions similaires

  1. [xml] [libxml2] [PHP5] entités quot apo reconverties
    Par vexa dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/12/2006, 18h20
  2. Réponses: 3
    Dernier message: 30/06/2006, 15h10
  3. [Libxml2] node et children
    Par kendras dans le forum XML
    Réponses: 5
    Dernier message: 14/06/2006, 10h13
  4. [libxml2][SAX2] Recherche d'un exemple de base
    Par Djakisback dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 19/03/2006, 17h43
  5. [XML] recherche un parser cross platform : libXML2 ou Xerces ???
    Par baert dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 13/09/2005, 14h49

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