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()ます。

関数は、1 回の呼び出しで入力全体を解析することによって動作するため、必要なことを行うには、および をtidyParseXxx()参照する必要があります。TidyInputSourcetidyParseSource()

于 2009-10-19T15:30:12.313 に答える