Cpper
C/C++高级工程师 Android高级软件工程师 IT集成工程师 音频工程师 熟悉c,c++,java,c#,py,js,asp等多种语言 程序猿
盖莫游戏引擎1.x版本是采用libxml操作xml文件的
这个库弄得太复杂了
现在计划从2.1.2开始使用rapidxml操作xml
首先上一个简单的xml写文件
如下:
#include <iostream>
#include 
<rapidxml/rapidxml.hpp>
#include 
<rapidxml/rapidxml_utils.hpp>
#include 
<rapidxml/rapidxml_print.hpp>
 
using namespace rapidxml;

int main()
{    
     xml_document
<> doc;  
     xml_node
<>* rot = doc.allocate_node(rapidxml::node_pi,doc.allocate_string("xml version='1.0' encoding='utf-8'"));
     doc.append_node(rot);
     xml_node
<>* node =  doc.allocate_node(node_element,"config","information");  
     xml_node
<>* color =  doc.allocate_node(node_element,"color",NULL);  
     doc.append_node(node);
     node
->append_node(color);
     color
->append_node(doc.allocate_node(node_element,"red","0.1"));
     color
->append_node(doc.allocate_node(node_element,"green","0.1"));
     color
->append_node(doc.allocate_node(node_element,"blue","0.1"));
     color
->append_node(doc.allocate_node(node_element,"alpha","1.0"));

     xml_node
<>* size =  doc.allocate_node(node_element,"size",NULL); 
     size
->append_node(doc.allocate_node(node_element,"x","640"));
     size
->append_node(doc.allocate_node(node_element,"y","480"));
     node
->append_node(size);

     xml_node
<>* mode = doc.allocate_node(rapidxml::node_element,"mode","screen mode");
     mode
->append_attribute(doc.allocate_attribute("fullscreen","false"));
     node
->append_node(mode);

     std::
string text;  
     rapidxml::print(std::back_inserter(text), doc, 
0);  
 
     std::cout
<<text<<std::endl; 
    
     std::ofstream 
out("config.xml");
     
out << doc;
 
     system(
"PAUSE");
     
return EXIT_SUCCESS;
}

生成的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>640</x>
        
<y>480</y>
    
</size>
    
<mode fullscreen="false">screen mode</mode>
</config>

说实话 感觉这个比较不错
希望更多的人使用它!
posted on 2010-04-16 20:43 ccsdu2009 阅读(4616) 评论(3)  编辑 收藏 引用
Comments

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理