我试图用libtidy(c语言)清理一些html,问题是:
我想用tidyParseBuffer()构造一个tidyDoc(一个树状结构)。
我对tidyparsefile()没有问题;关于tidyparsebuffer():我确信我正确地读取了文件,并且我给tidyparsebuffer()的tidybuffer结构被正确地填充。
有什么想法吗?
代码如下:

    //declaration
 tidyInput = malloc(sizeof(TidyBuffer));
 tidyOutput = malloc(sizeof(TidyBuffer));
 do {
      len = fread(pbInputData, 1, nInputData, h->file);
      tidyBufAttach(tidyInput, (void*)pbInputData, len);
      tidyParseBuffer(h->doc, tidyInput);  // doc is the TidyDoc
 } while (len >= nInputData);
 tidyOptSetBool(h->doc, TidyForceOutput, yes);

 tidySaveFile(handler->doc, "C://test.xhtml");

我确实简化了代码。

最佳答案

这个问题源于这样一个事实:您正试图以块的形式解析文件的内容,将每个块读入缓冲区,并为每个块调用tidyParseBuffer()
tidyParseXxx()函数通过在一个调用中解析整个输入来操作,因此要执行您想要的操作,您应该查看TidyInputSourcetidyParseSource()

09-11 19:07