我尝试将带有 XSLT 的 XML 文件转换为 HTML。
#include <string.h>
#include <libxml/xmlmemory.h>
#include <libxml/debugXML.h>
#include <libxml/HTMLtree.h>
#include <libxml/xmlIO.h>
#include <libxml/DOCBparser.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>
extern int xmlLoadExtDtdDefaultValue;
int main(int argc, char **argv) {
int i=1;
const char *params[1];
xsltStylesheetPtr cur = NULL;
xmlDocPtr doc, res;
//FILE * ptrFile;
//ptrFile = fopen("result.html", "r");
params[0] = NULL;
xmlSubstituteEntitiesDefault(1);
xmlLoadExtDtdDefaultValue = 1;
cur = xsltParseStylesheetFile((const xmlChar *)argv[i]);
i++;
doc = xmlParseFile(argv[i]);
res = xsltApplyStylesheet(cur, doc, params);
xsltSaveResultToFile(stdout, res, cur);
//fclose(ptrFile);
xsltFreeStylesheet(cur);
xmlFreeDoc(res);
xmlFreeDoc(doc);
xsltCleanupGlobals();
xmlCleanupParser();
return(0);
}
它可以工作,但 HTML 代码显示在控制台中。我想将它保存到一个文件中,但是当我尝试创建文件“result.html”并将其放入 xsltSaveResultToFile(ptrFile, res, cur) 时出现错误“分段错误”。我该怎么做才能修复它?