私はlibxmlを初めて使用し、これまでのところすべてが良好ですが、libxmlが文字を報告するとき、つまりハンドラーの文字関数が呼び出されるとき、「」や「」などの「特殊」文字、または個別に報告されることに気づきました。例:
"It's a nice day today. Don't you agree?"
report:"
report: It
report: '
report: s a nice day today. Don
report: '
report: you aggree?
report: "
その動作を変更する方法はありますか?完全な文字列として報告されますか?誤解しないでください。strcatを使用して元の文字列をまとめることは問題ありませんが、それは追加の作業です;)
ヘッダーとネットを検索しましたが、解決策が見つかりませんでした。前もって感謝します。
編集:上記のハンドラーの説明にはもう少し説明が必要なためです。文字を報告するということは、ハンドラー(htmlSAXHandler)のhandler.charactersコールバック関数が呼び出されたときを意味します。
void _characters(void *context, const xmlChar *ch, int len) {
printf("report: %s\n", chars);
}