[libxml] I/O warning : failed to load external entity
Bonjour à tous,
Avec libxml 2.9.3, sur ubuntu 18.04, lorsque j'indique un fichier qui n'existe pas, j'obtiens l'erreur : I/O warning : failed to load external entity "/home/user/documents/404.xml" qui s'affiche dans stderr.
Je souhaiterai gérer moi même la présentation des erreurs. Comment faire ?
voici mon code :
Code:
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 38 39 40
| int
dom_document_load(const gchar *uri)
{
xmlSAXHandler sh = {0, };
//...
sh.warning = (warningSAXFunc) dom_parser_warning;// pas appelé
sh.error = (errorSAXFunc) dom_parser_error;// pas appelé
sh.fatalError = (fatalErrorSAXFunc) dom_parser_fatal_error;// pas appelé
// Création du contexte
xmlParserCtxtPtr ctxt = xmlCreateFileParserCtxt(uri);
if (ctxt == 0) {
fprintf(stderr, "Erreur lors de la création du contexte\n");
return -1;
}
// Fonctions de rappel à utiliser
ctxt->sax2 = &sh;
// Analyse
xmlParseDocument(ctxt);
if (ctxt->wellFormed) {
fprintf("Document bien formé\n");
} else {
fprintf(stderr, "Document XML mal formé\n");
xmlFreeParserCtxt(ctxt);
return -1;
}
// Libération de la mémoire
//...
return 0;
}
main () {
dom_document_load("/home/user/documents/404.xml");// output :
// I/O warning : failed to load external entity "/home/user/documents/404.xml"
// Erreur lors de la création du contexte
} |
D'avance merci pour vos lumières.