わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

XMLのエスケープ文字をエスケープする

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"&amp;";
			}
			break;


		case L'<':
			{
				oRet += L"&lt;";
			}
			break;


		case L'>':
			{
				oRet += L"&gt;";
			}
			break;


		case L'"':
			{
				oRet += L"&quot;";
			}
			break;


		case L'¥'':
			{
				oRet += L"&apos;";
			}
			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 );
}

実行結果

&amp;&lt;&amp;&gt;&amp;&amp;&amp;&quot;&amp;&apos;






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。