0

我尝试将带有 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) 时出现错误“分段错误”。我该怎么做才能修复它?

4

0 回答 0