XMLにてエスケープする必要のある文字(<>&"')をエスケープします。
#include <stdio.h> #include <tchar.h> #include <iostream> #include <string> #include <locale.h> /* XMLのエスケープ文字をエスケープする */ std::wstring EscapeXmlString ( std::wstring oString ) { std::wstring oRet; std::wstring::iterator ite = oString.begin(); std::wstring::iterator iteEnd = oString.end(); while( ite != iteEnd ) { wchar_t wChar = *ite++; switch( wChar ) { case L'&': { oRet += L"&"; } break; case L'<': { oRet += L"<"; } break; case L'>': { oRet += L">"; } break; case L'"': { oRet += L"""; } break; case L'¥'': { oRet += L"'"; } break; default: oRet += wChar; break; } } return( oRet ); } int _tmain ( int argc , _TCHAR* argv[] ) { // 標準出力にユニコード出力する setlocale( LC_ALL, "Japanese" ); // XMLのエスケープ文字をエスケープする std::wstring str = EscapeXmlString( L"<>&¥"'" ); // 標準出力へ出力する std::wcout << str << std::endl; // 正常終了 return( 0 ); }
&<&>&&&"&'