3

我正在尝试使用 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");

我确实简化了代码。

4

1 回答 1

1

问题源于您试图以块的形式解析文件的内容,将每个块读入缓冲区并调用tidyParseBuffer()每个块。

这些tidyParseXxx()函数通过在一次调用中解析整个输入来运行,因此要执行您想要的操作,您应该查看TidyInputSourceand tidyParseSource()

于 2009-10-19T15:30:12.313 回答