J'écris une petite enveloppe autour de libxml2 en C++, et j'essaie de comprendre comment gérer les erreurs. Pour l'instant, disons que je veux juste les imprimer. Voici ce que j'ai à l'heure actuelle:Gestion des erreurs libxml2
Ma fonction de gestion des erreurs:
void foo(void *ctx, const char *msg, ...) {
cout << msg << endl;
return;
}
initialisés comme ceci:
xmlGenericErrorFunc handler = (xmlGenericErrorFunc)foo;
initGenericErrorDefaultFunc(&handler);
Cependant, si je parse une mauvaise XPath, je reçois cette sortie:
%s
Sans le code de gestion des erreurs, je reçois ceci:
XPath error : Invalid expression //[email protected] ^
Il est évident que finalement ma gestion des erreurs fera plus que imprimer le message d'erreur (il va fichier de journalisation d'une base de données ou quelque chose), mais pour l'instant - comment puis-je obtenir cette chaîne d'erreur?
C'est presque là - ça me donne "expression invalide", mais pas le reste. –
C'est probablement tout ce que contient le message, vous avez dit que vous aviez% s lorsque vous n'imprimiez que msg, ce qui indique qu'il n'y a plus qu'un seul argument à donner à foo() et que c'est une chaîne à imprimer. Peut-être que l'information ici peut vous aider? http://xmlsoft.org/html/libxml-xmlerror.html#xmlGenericErrorFunc – Puppe
@Puppe - c'est logique. Malheureusement, la documentation n'est pas très claire sur ce qui est transmis à 'xmlGenericErrorFunc'. Ce que vous avez est assez bon pour mes fins cependant. Merci! –