1

xercesc ::XMLString类有两个不同的函数将 XMLCh 数组转码为本机 char *array:

static char * transcode(const XMLCh *const toTranscode, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)

static bool transcode(const XMLCh *const toTranscode, char *const toFill, const XMLSize_t maxChars, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)

根据文档,不推荐使用第二个重载。然而,关于这两个函数的确切行为的文档很少,当我得到一个指定长度的 XMLCh 数组时(如在ContentHandler::characters处理程序中),似乎我想使用限制字符数的方法转码。关于为什么不推荐使用第二种方法以及是否有其他转码方法的任何线索?

4

1 回答 1

0

不推荐使用的函数要求您提供缓冲区,因此它的大小。第一个(非弃用)函数为您创建缓冲区并返回指向它的指针。它们都做同样的事情,除了由于缓冲区太小而弃用的函数可能不会成功。似乎未弃用的功能具有更简洁的界面。

于 2012-05-18T18:45:05.657 回答