mirror of
https://gitlab.gnome.org/GNOME/libxslt
synced 2025-07-10 14:40:58 +03:00
updating libxslt tutorial to include param support
Mon Jul 23 09:32:27 MDT 2001 John Fleck <jfleck@inkstain.net> * updating libxslt tutorial to include param support
This commit is contained in:
committed by
John Fleck
parent
ca2e262335
commit
c43b7da657
@ -21,6 +21,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <libxml/xmlmemory.h>
|
||||
#include <libxml/debugXML.h>
|
||||
#include <libxml/HTMLtree.h>
|
||||
@ -39,10 +40,15 @@ 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");
|
||||
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
int i;
|
||||
const char *params[16 + 1];
|
||||
int nbparams = 0;
|
||||
xsltStylesheetPtr cur = NULL;
|
||||
xmlDocPtr doc, res;
|
||||
|
||||
@ -50,12 +56,34 @@ main(int argc, char **argv) {
|
||||
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[1]);
|
||||
doc = xmlParseFile(argv[2]);
|
||||
res = xsltApplyStylesheet(cur, doc, NULL);
|
||||
cur = xsltParseStylesheetFile((const xmlChar *)argv[i]);
|
||||
i++;
|
||||
doc = xmlParseFile(argv[i]);
|
||||
res = xsltApplyStylesheet(cur, doc, params);
|
||||
xsltSaveResultToFile(stdout, res, cur);
|
||||
|
||||
xsltFreeStylesheet(cur);
|
||||
|
Reference in New Issue
Block a user