MFC中使用tinyxml

从 http://sourceforge.net/projects/tinyxml/ 下载新版本,把6个文件复制到项目中 tinystr.h tinyxml.h tinystr.cpp tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp 

将CPP文件的头部加上 #include "stdafx.h" , 要使用的地方 #include "tinyxml.h"

wchar_t* CommTools::U8ToUnicode(const char* szU8)
{
    int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);
    wchar_t* wszString = new wchar_t[wcsLen + 1];
    ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);
  wszString[wcsLen] = '\0';
    return wszString;

 CStringA CommTools::CStringToCStringA(CString str)

{
    // Convert a TCHAR string to a LPCSTR
    CT2CA pszConvertedAnsiString (str);
    // construct a std::string using the LPCSTR input
    CStringA result(pszConvertedAnsiString);
    return result;
}

GetText 节点的值是空返回NULL,可以先判断一下再gettext

if( cityIdEle->GetText()!=NULL )
  wcscpy_s( cityInfoList[iTmpC].cID , commTools.U8ToUnicode(cityIdEle->GetText()) );
else

  wcscpy_s( cityInfoList[iTmpC].cID , L"" ); 

原文地址:https://www.cnblogs.com/abinxm/p/2196845.html