Subject: [xsl] xsltSetGenericErrorFunc() and Capturing Error Output From: "Anthony M. Gaudio" <agaudio@xxxxxxxxxxxxx> Date: Wed, 16 Mar 2005 13:13:07 -0500 |
Not sure if my last question was clear enough, but I am having problems getting my code to capture any parser errors. I have the following code below: This was taken from a tutorial posted on the xmlsoft.org site. I am using the xsltSetGenericFunc to have *myhandler* function handle the errors instead of the default. Any help would be greatly appreciated. Thank you very much. If you respond, please respond to the list as I will have a better chance in receiving it. ---------------------- Code Snippet ---------------------------- #include <string.h> #include <libxml/xmlmemory.h> #include <libxml/debugXML.h> #include <libxml/HTMLtree.h> #include <libxml/xmlIO.h> #include <libxml/xinclude.h> #include <libxml/catalog.h> #include <libxslt/xslt.h> #include <libxslt/xsltInternals.h> #include <libxslt/transform.h> #include <libxslt/xsltutils.h> /*xsltGenericErrorFunc xslt_error(xsltStylesheetPtr blah);*/ extern int xmlLoadExtDtdDefaultValue; static void usage(const char *name) { printf("Usage: %s [options] stylesheet file [file ...]\n", name); printf(" --param name value : pass a (parameter,value) pair\n"); } void myhandler(void *ctx, const char *msg, ...) { va_list args; if (xmlGenericErrorContext == NULL) xmlGenericErrorContext = (void *) stderr; va_start(args, msg); vfprintf((FILE *)xmlGenericErrorContext, msg, args); va_end(args); } int main(int argc, char **argv) { int i; const char *params[16 + 1]; int nbparams = 0; xsltStylesheetPtr cur = NULL; xmlDocPtr doc, res; if (argc <= 1) { usage(argv[0]); return(1); } for (i = 1; i < argc; i++) { if (argv[i][0] != '-') break; if ((!strcmp(argv[i], "-param")) || (!strcmp(argv[i], "--param"))) { i++; params[nbparams++] = argv[i++]; params[nbparams++] = argv[i]; if (nbparams >= 16) { fprintf(stderr, "too many params\n"); return (1); } } else { fprintf(stderr, "Unknown option %s\n", argv[i]); usage(argv[0]); return (1); } } params[nbparams] = NULL; xmlSubstituteEntitiesDefault(1); xmlLoadExtDtdDefaultValue = 1; cur = xsltParseStylesheetFile((const xmlChar *)argv[i]); xsltSetGenericErrorFunc(cur,myhandler); i++; doc = xmlParseFile(argv[i]); res = xsltApplyStylesheet(cur, doc, params); xsltSaveResultToFile(stdout, res, cur); xsltFreeStylesheet(cur); xmlFreeDoc(res); xmlFreeDoc(doc); xsltCleanupGlobals(); xmlCleanupParser(); return(0); }
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Pagination with query and, Jason Trépanier | Thread | [xsl] removing space in a text node, Peter Charles |
Re: [xsl] Pagination with query and, Jason Trépanier | Date | [xsl] removing space in a text node, Peter Charles |
Month |