/* * call-seq: * XML.default_line_numbers = true|false * * Controls whether parsers retain line-numbers by default. */ static VALUE rxml_default_line_numbers_set(VALUE klass, VALUE value) { if (value == Qfalse) { xmlLineNumbersDefault(0); return (Qfalse); } else { xmlLineNumbersDefault(1); return (Qtrue); } }
bool CXmlTree::CreateNewTree(const char *name, const char *value /* = NULL */) { CServerIo::trace(3,"CXmlTree::CreateNewTree(%s,%s)",(name)?name:"NULL",(value)?value:"NULL"); DiscardTree(); CServerIo::trace(3,"CXmlTree::CreateNewTree() - xmlSetStructuredErrorFunc()"); xmlSetStructuredErrorFunc(this, errorFunc); CServerIo::trace(3,"CXmlTree::CreateNewTree() - xmlKeepBlanksDefault(0)"); xmlKeepBlanksDefault(0); CServerIo::trace(3,"CXmlTree::CreateNewTree() - xmlLineNumbersDefault(1)"); xmlLineNumbersDefault(1); CServerIo::trace(3,"CXmlTree::CreateNewTree() - xmlNewDoc()"); m_doc = xmlNewDoc((const xmlChar *)"1.0"); if(!m_doc) return false; CServerIo::trace(3,"CXmlTree::CreateNewTree() - xmlNewDocNode()"); xmlNodePtr node = xmlNewDocNode(m_doc, NULL, (const xmlChar *)name, (const xmlChar *)value); if(!node) return false; CServerIo::trace(3,"CXmlTree::CreateNewTree() - xmlDocSetRootElement()"); xmlDocSetRootElement (m_doc, node); CServerIo::trace(3,"CXmlTree::CreateNewTree() - return"); return true; }
bool CXmlTree::ParseXmlFromMemory(const char *data) { DiscardTree(); xmlSetStructuredErrorFunc(this, errorFunc); xmlKeepBlanksDefault(0); xmlLineNumbersDefault(1); m_doc = xmlParseMemory(data,(int)strlen(data)); if(!m_doc) return false; return true; }
bool CXmlTree::ReadXmlFile(const char *name) { DiscardTree(); xmlSetStructuredErrorFunc(this, errorFunc); xmlKeepBlanksDefault(0); xmlLineNumbersDefault(1); m_doc = xmlParseFile(name); if(!m_doc) return false; return true; }
static boolean_t libbrand_initialize() { static mutex_t initialize_lock = DEFAULTMUTEX; (void) mutex_lock(&initialize_lock); if (libbrand_initialized) { (void) mutex_unlock(&initialize_lock); return (B_TRUE); } if (sysinfo(SI_ARCHITECTURE, i_curr_arch, sizeof (i_curr_arch)) < 0) { (void) mutex_unlock(&initialize_lock); return (B_FALSE); } if (getzonenamebyid(getzoneid(), i_curr_zone, sizeof (i_curr_zone)) < 0) { (void) mutex_unlock(&initialize_lock); return (B_FALSE); } /* * Note that here we're initializing per-process libxml2 * state. By doing so we're implicitly assuming that * no other code in this process is also trying to * use libxml2. But in most case we know this not to * be true since we're almost always used in conjunction * with libzonecfg, which also uses libxml2. Lucky for * us, libzonecfg initializes libxml2 to essentially * the same defaults as we're using below. */ (void) xmlLineNumbersDefault(1); xmlLoadExtDtdDefaultValue |= XML_DETECT_IDS; xmlDoValidityCheckingDefaultValue = 1; (void) xmlKeepBlanksDefault(0); xmlGetWarningsDefaultValue = 0; xmlSetGenericErrorFunc(NULL, brand_error_func); libbrand_initialized = B_TRUE; (void) mutex_unlock(&initialize_lock); return (B_TRUE); }
static xmlDocPtr makeXMLDoc (void) { const unsigned char* data; size_t size; xmlDocPtr doc = NULL; doc = getInputFileUserData (); if (doc) { verbose ("reuse xml doc data\n"); return doc; } data = getInpufFileData (&size); if (data) { xmlLineNumbersDefault (1); doc = xmlParseMemory((const char*)data, size); } return doc; }
gboolean _gtk_source_language_file_parse_version2 (GtkSourceLanguage *language, GtkSourceContextData *ctx_data) { GHashTable *defined_regexes, *styles; gboolean success; GError *error = NULL; gchar *filename; GHashTable *loaded_lang_ids; GQueue *replacements; g_return_val_if_fail (ctx_data != NULL, FALSE); filename = language->priv->lang_file_name; /* TODO: as an optimization tell the parser to merge CDATA * as text nodes (XML_PARSE_NOCDATA), and to ignore blank * nodes (XML_PARSE_NOBLANKS), if it is possible with * xmlTextReader. */ xmlKeepBlanksDefault (0); xmlLineNumbersDefault (1); xmlSubstituteEntitiesDefault (1); DEBUG (xmlPedanticParserDefault (1)); defined_regexes = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); styles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) _gtk_source_style_info_free); loaded_lang_ids = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) xmlFree, NULL); replacements = g_queue_new (); success = file_parse (filename, language, ctx_data, defined_regexes, styles, loaded_lang_ids, replacements, &error); if (success) success = _gtk_source_context_data_finish_parse (ctx_data, replacements->head, &error); if (success) g_hash_table_foreach_steal (styles, (GHRFunc) steal_styles_mapping, language->priv->styles); g_queue_foreach (replacements, (GFunc) _gtk_source_context_replace_free, NULL); g_queue_free (replacements); g_hash_table_destroy (loaded_lang_ids); g_hash_table_destroy (defined_regexes); g_hash_table_destroy (styles); if (!success) { g_warning ("Failed to load '%s': %s", filename, error->message); g_error_free (error); return FALSE; } return TRUE; }
/** * This is the main function for 'validate' option */ int valMain(int argc, char **argv) { int start; static valOptions ops; static ErrorInfo errorInfo; int invalidFound = 0; int options = XML_PARSE_DTDLOAD | XML_PARSE_DTDATTR; if (argc <= 2) valUsage(argc, argv, EXIT_BAD_ARGS); valInitOptions(&ops); start = valParseOptions(&ops, argc, argv); if (ops.nonet) options |= XML_PARSE_NONET; errorInfo.verbose = ops.err; xmlSetStructuredErrorFunc(&errorInfo, reportError); xmlLineNumbersDefault(1); if (ops.dtd) { /* xmlReader doesn't work with external dtd, have to use SAX * interface */ int i; for (i=start; i<argc; i++) { xmlDocPtr doc; int ret; ret = 0; doc = NULL; errorInfo.filename = argv[i]; doc = xmlReadFile(argv[i], NULL, options); if (doc) { /* TODO: precompile DTD once */ ret = valAgainstDtd(&ops, ops.dtd, doc, argv[i]); xmlFreeDoc(doc); } else { ret = 1; /* Malformed XML or could not open file */ if ((ops.listGood < 0) && !ops.show_val_res) { fprintf(stdout, "%s\n", argv[i]); } } if (ret) invalidFound = 1; if (ops.show_val_res) { if (ret == 0) fprintf(stdout, "%s - valid\n", argv[i]); else fprintf(stdout, "%s - invalid\n", argv[i]); } } } else if (ops.schema || ops.relaxng || ops.embed || ops.wellFormed) { int i; xmlTextReaderPtr reader = NULL; #ifdef LIBXML_SCHEMAS_ENABLED xmlSchemaPtr schema = NULL; xmlSchemaParserCtxtPtr schemaParserCtxt = NULL; xmlSchemaValidCtxtPtr schemaCtxt = NULL; xmlRelaxNGPtr relaxng = NULL; xmlRelaxNGParserCtxtPtr relaxngParserCtxt = NULL; /* there is no xmlTextReaderRelaxNGValidateCtxt() !? */ /* TODO: Do not print debug stuff */ if (ops.schema) { schemaParserCtxt = xmlSchemaNewParserCtxt(ops.schema); if (!schemaParserCtxt) { invalidFound = 2; goto schemaCleanup; } errorInfo.filename = ops.schema; schema = xmlSchemaParse(schemaParserCtxt); if (!schema) { invalidFound = 2; goto schemaCleanup; } xmlSchemaFreeParserCtxt(schemaParserCtxt); schemaCtxt = xmlSchemaNewValidCtxt(schema); if (!schemaCtxt) { invalidFound = 2; goto schemaCleanup; } } else if (ops.relaxng) { relaxngParserCtxt = xmlRelaxNGNewParserCtxt(ops.relaxng); if (!relaxngParserCtxt) { invalidFound = 2; goto schemaCleanup; } errorInfo.filename = ops.relaxng; relaxng = xmlRelaxNGParse(relaxngParserCtxt); if (!relaxng) { invalidFound = 2; goto schemaCleanup; } } #endif /* LIBXML_SCHEMAS_ENABLED */ for (i=start; i<argc; i++) { int ret = 0; if (ops.embed) options |= XML_PARSE_DTDVALID; if (!reader) { reader = xmlReaderForFile(argv[i], NULL, options); } else { ret = xmlReaderNewFile(reader, argv[i], NULL, options); } errorInfo.xmlReader = reader; errorInfo.filename = argv[i]; if (reader && ret == 0) { #ifdef LIBXML_SCHEMAS_ENABLED if (schemaCtxt) { ret = xmlTextReaderSchemaValidateCtxt(reader, schemaCtxt, 0); } else if (relaxng) { ret = xmlTextReaderRelaxNGSetSchema(reader, relaxng); } #endif /* LIBXML_SCHEMAS_ENABLED */ if (ret == 0) { do { ret = xmlTextReaderRead(reader); } while (ret == 1); if (ret != -1 && (schema || relaxng || ops.embed)) ret = !xmlTextReaderIsValid(reader); } } else { if (ops.err) fprintf(stderr, "couldn't read file '%s'\n", errorInfo.filename); ret = 1; /* could not open file */ } if (ret) invalidFound = 1; if (!ops.show_val_res) { if ((ops.listGood > 0) && (ret == 0)) fprintf(stdout, "%s\n", argv[i]); if ((ops.listGood < 0) && (ret != 0)) fprintf(stdout, "%s\n", argv[i]); } else { if (ret == 0) fprintf(stdout, "%s - valid\n", argv[i]); else fprintf(stdout, "%s - invalid\n", argv[i]); } } errorInfo.xmlReader = NULL; xmlFreeTextReader(reader); #ifdef LIBXML_SCHEMAS_ENABLED schemaCleanup: xmlSchemaFreeValidCtxt(schemaCtxt); xmlRelaxNGFree(relaxng); xmlSchemaFree(schema); xmlRelaxNGCleanupTypes(); xmlSchemaCleanupTypes(); #endif /* LIBXML_SCHEMAS_ENABLED */ } xmlCleanupParser(); return invalidFound; }
int main(int argc, const char *argv[]) { LIBXML_TEST_VERSION xmlLineNumbersDefault(1); xmlThrDefIndentTreeOutput(1); xmlKeepBlanksDefault(0); xmlThrDefTreeIndentString(" "); std::vector<std::string> arguments(argv + 1, argv + argc); if (arguments.empty()) { usage(); } // Scan for global options for (std::string arg : arguments) { if (arg.substr(0, 2) != "--") { break; } if (arg == "--version") { std::cout << "pharmmltool " VERSION << std::endl; exit(0); } else if (arg == "--help") { usage(); } else { std::cout << "Unknown option: " << arg << std::endl; usage(); } } // Read command std::string command_string = arguments[0]; arguments.erase(arguments.begin() + 0); Command command; if (command_string == "validate") { command = Command::validate; } else if (command_string == "indent") { command = Command::indent; } else if (command_string == "compact") { command = Command::compact; } else if (command_string == "version") { command = Command::version; } else if (command_string == "convert") { command = Command::convert; } else { std::cout << "Unknow command: " << command_string << std::endl; usage(); } // Read command options std::vector<std::string> remaining_arguments; std::string target_version = "0.9"; std::string schema_path; for (std::string arg : arguments) { if (arg.compare(0, 14, "--schema-path=") == 0) { if (command == Command::validate) { schema_path = arg.substr(14, std::string::npos); } else { error("Option --schema-path can only be used with the validate command"); } } else if (arg.compare(0, 17, "--target-version=") == 0) { if (command == Command::convert) { target_version = arg.substr(17, std::string::npos); if (target_version != "0.8.1" && target_version != "0.9") { error("Unknown PharmML version " + target_version + ". Can only convert to PharmML 0.8.1 or PharmML 0.9"); } } else { error("Option --target-version can only be used with the convert command"); } } else { remaining_arguments.push_back(arg); } } int numargs = remaining_arguments.size(); if (!(command == Command::convert && numargs == 2 || command == Command::validate && numargs == 1 || command == Command::indent && numargs == 1 || command == Command::compact && numargs == 1 || command == Command::version && numargs == 1)) { error("Wrong number of arguments"); } if (command == Command::validate) { auto auxpath = auxfile_path(argv[0]); validate(remaining_arguments[0], schema_path, auxpath, "PharmML"); } else if (command == Command::indent) { indent(remaining_arguments[0], true); } else if (command == Command::compact) { indent(remaining_arguments[0], false); } else if (command == Command::version) { std::string pharmml_version = version(remaining_arguments[0], "PharmML"); std::cout << pharmml_version << std::endl; } else if (command == Command::convert) { auto auxpath = auxfile_path(argv[0]); auxpath /= fs::path{"transformations"}; convert(remaining_arguments[0], remaining_arguments[1], target_version, auxpath); } return 0; }
int main(int argc, char **argv) { int i; int files = 0; xmlRelaxNGPtr schema = NULL; for (i = 1; i < argc ; i++) { #ifdef LIBXML_DEBUG_ENABLED if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) debug++; else #endif #ifdef HAVE_SYS_MMAN_H if ((!strcmp(argv[i], "-memory")) || (!strcmp(argv[i], "--memory"))) { memory++; } else #endif if ((!strcmp(argv[i], "-noout")) || (!strcmp(argv[i], "--noout"))) { noout++; } else if ((!strcmp(argv[i], "-tree")) || (!strcmp(argv[i], "--tree"))) { tree++; } } xmlLineNumbersDefault(1); xmlSubstituteEntitiesDefault(1); for (i = 1; i < argc ; i++) { if (argv[i][0] != '-') { if (schema == NULL) { xmlRelaxNGParserCtxtPtr ctxt; #ifdef HAVE_SYS_MMAN_H if (memory) { int fd; struct stat info; const char *base; if (stat(argv[i], &info) < 0) break; if ((fd = open(argv[i], O_RDONLY)) < 0) break; base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ; if (base == (void *) MAP_FAILED) break; ctxt = xmlRelaxNGNewMemParserCtxt((char *)base,info.st_size); xmlRelaxNGSetParserErrors(ctxt, (xmlRelaxNGValidityErrorFunc) fprintf, (xmlRelaxNGValidityWarningFunc) fprintf, stderr); schema = xmlRelaxNGParse(ctxt); xmlRelaxNGFreeParserCtxt(ctxt); munmap((char *) base, info.st_size); } else #endif { ctxt = xmlRelaxNGNewParserCtxt(argv[i]); xmlRelaxNGSetParserErrors(ctxt, (xmlRelaxNGValidityErrorFunc) fprintf, (xmlRelaxNGValidityWarningFunc) fprintf, stderr); schema = xmlRelaxNGParse(ctxt); xmlRelaxNGFreeParserCtxt(ctxt); } if (schema == NULL) { printf("Relax-NG schema %s failed to compile\n", argv[i]); files = -1; break; } #ifdef LIBXML_OUTPUT_ENABLED #ifdef LIBXML_DEBUG_ENABLED if (debug) xmlRelaxNGDump(stdout, schema); #endif if (tree) xmlRelaxNGDumpTree(stdout, schema); #endif /* LIBXML_OUTPUT_ENABLED */ } else { xmlDocPtr doc; doc = xmlReadFile(argv[i],NULL,0); if (doc == NULL) { fprintf(stderr, "Could not parse %s\n", argv[i]); } else { xmlRelaxNGValidCtxtPtr ctxt; int ret; ctxt = xmlRelaxNGNewValidCtxt(schema); xmlRelaxNGSetValidErrors(ctxt, (xmlRelaxNGValidityErrorFunc) fprintf, (xmlRelaxNGValidityWarningFunc) fprintf, stderr); ret = xmlRelaxNGValidateDoc(ctxt, doc); if (ret == 0) { printf("%s validates\n", argv[i]); } else if (ret > 0) { printf("%s fails to validate\n", argv[i]); } else { printf("%s validation generated an internal error\n", argv[i]); } xmlRelaxNGFreeValidCtxt(ctxt); xmlFreeDoc(doc); } } files ++; } } if (schema != NULL) xmlRelaxNGFree(schema); if (files == 0) { printf("Usage : %s [--debug] [--noout] schemas XMLfiles ...\n", argv[0]); printf("\tParse the HTML files and output the result of the parsing\n"); #ifdef LIBXML_DEBUG_ENABLED printf("\t--debug : dump a debug tree of the in-memory document\n"); #endif printf("\t--noout : do not print the result\n"); printf("\t--tree : print the intermediate Relax-NG document tree\n"); #ifdef HAVE_SYS_MMAN_H printf("\t--memory : test the schemas in memory parsing\n"); #endif } xmlRelaxNGCleanupTypes(); xmlCleanupParser(); xmlMemoryDump(); return(0); }
int main(int argc, char **argv) { int i; xsltStylesheetPtr cur = NULL; xmlDocPtr doc, style; if (argc <= 1) { usage(argv[0]); return (1); } xmlInitMemory(); LIBXML_TEST_VERSION defaultLoader = xmlGetExternalEntityLoader(); xmlLineNumbersDefault(1); if (novalid == 0) /* TODO XML_DETECT_IDS | XML_COMPLETE_ATTRS */ xmlLoadExtDtdDefaultValue = 6; else xmlLoadExtDtdDefaultValue = 0; for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-")) break; if (argv[i][0] != '-') continue; #ifdef LIBXML_DEBUG_ENABLED if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) { debug++; } else #endif if ((!strcmp(argv[i], "-v")) || (!strcmp(argv[i], "-verbose")) || (!strcmp(argv[i], "--verbose"))) { xsltSetGenericDebugFunc(stderr, NULL); } else if ((!strcmp(argv[i], "-o")) || (!strcmp(argv[i], "-output")) || (!strcmp(argv[i], "--output"))) { i++; output = argv[i++]; } else if ((!strcmp(argv[i], "-V")) || (!strcmp(argv[i], "-version")) || (!strcmp(argv[i], "--version"))) { printf("Using libxml %s, libxslt %s and libexslt %s\n", xmlParserVersion, xsltEngineVersion, exsltLibraryVersion); printf ("xsltproc was compiled against libxml %d, libxslt %d and libexslt %d\n", LIBXML_VERSION, LIBXSLT_VERSION, LIBEXSLT_VERSION); printf("libxslt %d was compiled against libxml %d\n", xsltLibxsltVersion, xsltLibxmlVersion); printf("libexslt %d was compiled against libxml %d\n", exsltLibexsltVersion, exsltLibxmlVersion); } else if ((!strcmp(argv[i], "-repeat")) || (!strcmp(argv[i], "--repeat"))) { if (repeat == 0) repeat = 20; else repeat = 100; } else if ((!strcmp(argv[i], "-novalid")) || (!strcmp(argv[i], "--novalid"))) { novalid++; } else if ((!strcmp(argv[i], "-noout")) || (!strcmp(argv[i], "--noout"))) { noout++; #ifdef LIBXML_DOCB_ENABLED } else if ((!strcmp(argv[i], "-docbook")) || (!strcmp(argv[i], "--docbook"))) { docbook++; #endif #ifdef LIBXML_HTML_ENABLED } else if ((!strcmp(argv[i], "-html")) || (!strcmp(argv[i], "--html"))) { html++; #endif } else if ((!strcmp(argv[i], "-timing")) || (!strcmp(argv[i], "--timing"))) { timing++; } else if ((!strcmp(argv[i], "-profile")) || (!strcmp(argv[i], "--profile"))) { profile++; } else if ((!strcmp(argv[i], "-norman")) || (!strcmp(argv[i], "--norman"))) { profile++; } else if ((!strcmp(argv[i], "-warnnet")) || (!strcmp(argv[i], "--warnnet"))) { xmlSetExternalEntityLoader(xsltNoNetExternalEntityLoader); } else if ((!strcmp(argv[i], "-nonet")) || (!strcmp(argv[i], "--nonet"))) { xmlSetExternalEntityLoader(xsltNoNetExternalEntityLoader); nonet = 1; #ifdef LIBXML_CATALOG_ENABLED } else if ((!strcmp(argv[i], "-catalogs")) || (!strcmp(argv[i], "--catalogs"))) { const char *catalogs; catalogs = getenv("SGML_CATALOG_FILES"); if (catalogs == NULL) { fprintf(stderr, "Variable $SGML_CATALOG_FILES not set\n"); } else { xmlLoadCatalogs(catalogs); } #endif #ifdef LIBXML_XINCLUDE_ENABLED } else if ((!strcmp(argv[i], "-xinclude")) || (!strcmp(argv[i], "--xinclude"))) { xinclude++; xsltSetXIncludeDefault(1); #endif } else 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 if ((!strcmp(argv[i], "-maxdepth")) || (!strcmp(argv[i], "--maxdepth"))) { int value; i++; if (sscanf(argv[i], "%d", &value) == 1) { if (value > 0) xsltMaxDepth = value; } } else if (!strcmp(argv[i], "--r")) { startRAutomatically = 1; RstartupScript = strchr(argv[i],'='); continue; } else { fprintf(stderr, "Unknown option %s\n", argv[i]); usage(argv[0]); return (1); } } params[nbparams] = NULL; /* * Replace entities with their content. */ xmlSubstituteEntitiesDefault(1); /* * Register the EXSLT extensions */ exsltRegisterAll(); registerRModule(0); if(startRAutomatically) { extern int RXSLT_internalSource(const char *fileName); int rargs = 1; const char *rargv[] = { "Sxsltproc" }; Rf_initEmbeddedR(rargs, rargv); loadXSLPackage(); if(RstartupScript && RstartupScript[0]) RXSLT_internalSource(RstartupScript); } for (i = 1; i < argc; i++) { if ((!strcmp(argv[i], "-maxdepth")) || (!strcmp(argv[i], "--maxdepth"))) { i++; continue; } else if ((!strcmp(argv[i], "-o")) || (!strcmp(argv[i], "-output")) || (!strcmp(argv[i], "--output"))) { i++; continue; } if ((!strcmp(argv[i], "-param")) || (!strcmp(argv[i], "--param"))) { i += 2; continue; } else if(!strcmp(argv[i], "--r")) { continue; } if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) { if (timing) gettimeofday(&begin, NULL); style = xmlParseFile((const char *) argv[i]); if (timing) { long msec; gettimeofday(&end, NULL); msec = end.tv_sec - begin.tv_sec; msec *= 1000; msec += (end.tv_usec - begin.tv_usec) / 1000; fprintf(stderr, "Parsing stylesheet %s took %ld ms\n", argv[i], msec); } if (style == NULL) { fprintf(stderr, "cannot parse %s\n", argv[i]); cur = NULL; } else { cur = xsltLoadStylesheetPI(style); if (cur != NULL) { /* it is an embedded stylesheet */ xsltProcess(style, cur, argv[i]); xsltFreeStylesheet(cur); exit(0); } cur = xsltParseStylesheetDoc(style); if (cur != NULL) { if (cur->indent == 1) xmlIndentTreeOutput = 1; else xmlIndentTreeOutput = 0; i++; } } break; } } /* * disable CDATA from being built in the document tree */ xmlDefaultSAXHandlerInit(); xmlDefaultSAXHandler.cdataBlock = NULL; if ((cur != NULL) && (cur->errors == 0)) { for (; i < argc; i++) { doc = NULL; if (timing) gettimeofday(&begin, NULL); #ifdef LIBXML_HTML_ENABLED if (html) doc = htmlParseFile(argv[i], NULL); else #endif #ifdef LIBXML_DOCB_ENABLED if (docbook) doc = docbParseFile(argv[i], NULL); else #endif doc = xmlParseFile(argv[i]); if (doc == NULL) { fprintf(stderr, "unable to parse %s\n", argv[i]); continue; } if (timing) { long msec; gettimeofday(&end, NULL); msec = end.tv_sec - begin.tv_sec; msec *= 1000; msec += (end.tv_usec - begin.tv_usec) / 1000; fprintf(stderr, "Parsing document %s took %ld ms\n", argv[i], msec); } xsltProcess(doc, cur, argv[i]); } xsltFreeStylesheet(cur); } #ifdef CAN_UNREGISTER_MODULES xsltUnregisterAllExtModules(); #endif xmlCleanupParser(); xmlMemoryDump(); return (0); }