2 #include <libxml/xmlmemory.h>
3 #include <libxml/debugXML.h>
4 #include <libxml/HTMLtree.h>
5 #include <libxml/xmlIO.h>
6 #include <libxml/DOCBparser.h>
7 #include <libxml/xinclude.h>
8 #include <libxml/catalog.h>
9 #include <libxslt/xslt.h>
10 #include <libxslt/xsltInternals.h>
11 #include <libxslt/transform.h>
12 #include <libxslt/xsltutils.h>
13 #include <libxslt/extensions.h>
16 extern int xmlLoadExtDtdDefaultValue;
18 void init_extensions();
20 /* output usage message. progname is the name of the executable. */
21 static void usage(const char* progname)
23 printf("Usage: %s [options] stylesheet input\n", progname);
24 printf(" --param name value : pass a parameter to the stylesheet\n");
27 int main(int argc, char** argv)
30 const char **params = 0;
33 xsltStylesheetPtr cur = NULL;
37 params = (const char**)malloc(sizeof(char*) * maxparams * 2);
44 for (argNum = 1; argNum < argc; argNum++) {
45 if (argv[argNum][0] != '-')
47 if ((!strcmp(argv[argNum], "-param")) ||
48 (!strcmp(argv[argNum], "--param"))) {
50 params[nbparams++] = argv[argNum++];
51 params[nbparams++] = argv[argNum];
52 if (nbparams >= maxparams * 2) {
54 params = realloc(params, sizeof(char*) * maxparams * 2);
57 fprintf(stderr, "Unknown option %s\n", argv[argNum]);
67 params[nbparams] = NULL;
68 xmlSubstituteEntitiesDefault(1);
69 xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
73 cur = xsltParseStylesheetFile((const xmlChar *)argv[argNum]);
75 doc = xmlParseFile(argv[argNum]);
76 res = xsltApplyStylesheet(cur, doc, params);
77 xsltSaveResultToFile(stdout, res, cur);
79 xsltFreeStylesheet(cur);