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 C : 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
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.
Partager