我有这个函数将put中的html转换为xhtml:
char* cleanhtml(char* localhtml)
{
char *buffer_;
static char *cleansed_buffer;
// uses Libtidy to convert the buffer to XML
TidyBuffer output = {0};
TidyBuffer errbuf = {0};
int rc = -1;
bool ok;
TidyDoc tdoc;
tdoc = tidyCreate(); // Initialize "document"
ok = tidyOptSetBool( tdoc, TidyXhtmlOut, yes ); // Convert to XHTML
rc = tidySetErrorBuffer( tdoc, &errbuf ); // Capture diagnostics
rc = tidyParseString(tdoc, localhtml); // Parse the input
rc = tidyCleanAndRepair( tdoc ); // Tidy it up!
rc = tidyRunDiagnostics( tdoc ); // Kvetch// If error, force output.
rc = ( tidyOptSetBool(tdoc, TidyForceOutput, yes) ? rc : -1 );
rc = tidySaveBuffer( tdoc, &output ); // Pretty Print
cleansed_buffer = (char*) malloc(output.size + 1);
memcpy (cleansed_buffer, (char*)output.bp,output.size);
tidyBufFree( &output );
tidyBufFree( &errbuf );
tidyRelease( tdoc );
return cleansed_buffer;
}
但问题是它无法正常工作......由于某种原因,xhtml被发出无法被解析而且格式错误。那么如何使用libtidy将正确格式的给定字符串(大字符串)转换为xhtml。
有人可以给我链接到最新的libtidy(dll,包括)C.我无法在任何地方找到它......甚至没有在那里的网站..
答案 0 :(得分:0)
int TIDY_CALL tidySaveString(TidyDoc tdoc,tmbstr buffer, uint * buflen)
您只需使用此功能即可将整洁的输出另存为字符串。