Libtidy HTML to XHTML并保存在字符串C中

时间:2014-12-08 18:51:24

标签: c htmltidy

我有这个函数将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.我无法在任何地方找到它......甚至没有在那里的网站..

1 个答案:

答案 0 :(得分:0)

int TIDY_CALL tidySaveString(TidyDoc tdoc,tmbstr buffer, uint * buflen)

您只需使用此功能即可将整洁的输出另存为字符串。

You can follow the instructions from the this link