Elminster:正解!和我现在的做法基本一致,就连名字(selector)都很像
bankrock:可行,但会丢失类型信息。
liuxinyu:谢谢回答。
那么,现在解决了char/wchar_t字面常量问题,那么再加大点难度吧。同样的问题如何处理“字面常量字符串”呢?例如,对于以下代码中的“字面字符串”:
代码:
characterData(void *userData, const XML_Char *s, int len)
{
FILE *fp = (FILE *)userData;
for (; len > 0; --len, ++s) {
switch (*s) {
case T('&'):
fputts(T("&"), fp);
break;
case T('<'):
fputts(T("<"), fp);
break;
case T('>'):
fputts(T(">"), fp);
break;
#ifdef W3C14N
case 13:
fputts(T("
"), fp);
break;
#else
case T('"'):
fputts(T("""), fp);
break;
case 9:
case 10:
case 13:
ftprintf(fp, T("&#%d;"), *s);
break;
#endif
default:
puttc(*s, fp);
break;
}
}
}