如何对长度有限的xerces XMLCh数组进行转码?

时间:2012-05-18 17:43:55

标签: c++ xerces

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

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)

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

1 个答案:

答案 0 :(得分:0)

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