2014年3月28日16:06:31
UNICODE模式下使用rapidxml写XML文件
1、使用VS2008创建一个带预编译头的控制台项目。
2、源文件内容:
#include "stdafx.h"
#include<iostream>
using namespace std;
#include "rapidxml.hpp"
#include "rapidxml_utils.hpp"
#include "rapidxml_print.hpp"
using namespace rapidxml;
int main()
{
xml_document<TCHAR> doc;
xml_node<TCHAR>* rot = doc.allocate_node(node_pi,doc.allocate_string(_T("xml version='1.0' encoding='GB2312'")));
doc.append_node(rot);
doc.append_node(doc.allocate_node(node_comment,NULL,_T("中心传输配置")));
xml_node<TCHAR>* node = doc.allocate_node(node_element,_T("CenterTransConfig"),NULL);
doc.append_node(node);
node->append_node(doc.allocate_node(node_comment,NULL,_T("进程定点自杀小时")));
xml_node<TCHAR>* color = doc.allocate_node(node_element,_T("kill_hour"),_T("23"));
node->append_node(color);
node->append_node(doc.allocate_node(node_comment,NULL,_T("日志系统等级")));
xml_node<TCHAR>* size = doc.allocate_node(node_element,_T("log_level"),_T("0"));
node->append_node(size);
#ifdef UNICODE
wofstream out(_T("CenterTransConfig.xml"));
out.imbue(locale("CHS"));
#else
ofstream out(_T("CenterTransConfig.xml"));
#endif
out << doc;
system("PAUSE");
return EXIT_SUCCESS;
}
//print(std::ostream_iterator<Ch>(out), node, flags);
print(std::ostream_iterator<Ch,Ch>(out), node, flags);