2014年3月25日16:53:55
使用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<> doc;
xml_node<>* rot = doc.allocate_node(node_pi,doc.allocate_string("xml version='1.0' encoding='utf-8'"));
doc.append_node(rot);
doc.append_node(doc.allocate_node(node_comment,NULL,"配置"));
xml_node<>* node = doc.allocate_node(node_element,"config",NULL);
doc.append_node(node);
node->append_node(doc.allocate_node(node_comment,NULL,"颜色"));
xml_node<>* color = doc.allocate_node(node_element,"color",NULL);
node->append_node(color);
color->append_node(doc.allocate_node(node_comment,NULL,"红色"));
color->append_node(doc.allocate_node(node_element,"red","0.1"));
color->append_node(doc.allocate_node(node_comment,NULL,"绿色"));
color->append_node(doc.allocate_node(node_element,"green","0.1"));
color->append_node(doc.allocate_node(node_comment,NULL,"蓝色"));
color->append_node(doc.allocate_node(node_element,"blue","0.1"));
color->append_node(doc.allocate_node(node_comment,NULL,"透明度"));
color->append_node(doc.allocate_node(node_element,"alpha","1.0"));
node->append_node(doc.allocate_node(node_comment,NULL,"大小"));
xml_node<>* size = doc.allocate_node(node_element,"size",NULL);
node->append_node(size);
size->append_node(doc.allocate_node(node_comment,NULL,"x"));
size->append_node(doc.allocate_node(node_element,"x","640"));
size->append_node(doc.allocate_node(node_comment,NULL,"y"));
size->append_node(doc.allocate_node(node_element,"y","480"));
ofstream out("lww.xml");
out << doc;
system("PAUSE");
return EXIT_SUCCESS;
}
3、生成的XML
<?xml version='1.0' encoding='utf-8' ?>
<!--配置-->
<config>
<!--颜色-->
<color>
<!--红色-->
<red>0.1</red>
<!--绿色-->
<green>0.1</green>
<!--蓝色-->
<blue>0.1</blue>
<!--透明度-->
<alpha>1.0</alpha>
</color>
<!--大小-->
<size>
<!--x-->
<x>640</x>
<!--y-->
<y>480</y>
</size>
</config>