使用rapidxml解析xml

 

rapidxml是一个由C++模板实现的高效率xml解析库,号称解析速度比tinyxml快50倍(忽悠),并作为boost::property的内置解析库:

其独立版本的官网:http://rapidxml.sourceforge.net/
使用rapidxml的方法tinyxml极其类似,但要求被解析的字符串必须已经将整个装入内存,它不是步进的解析方法:
  1. 包含必要的头文件
    #include "rapidxml.hpp"  
  2. 创建文档对象
    rapidxml::xml_document doc;  
  3. 分析xml字符串,要求以'/0'结尾
    std::string str(...); doc.parse<0>(const_cast(str.c_str()));  
  4. 获取节点
    rapidxml::xml_node * node = doc.first_node("node name");  
  5. 遍历所有节点
    for(rapidxml::xml_node * node = parent_node->first_node("node name"); node != NULL; node = node->next_sibling()) { ... }  
  6. 遍历所有属性
    for(rapidxml::xml_attribute * attr = node->first_attribute("node name"); attr != NULL; attr = attr->next_attribute()) { ... }  
  7. 获取属性值
    char * value = attr->value();  

 

你可能感兴趣的:(xml,null,string,文档,c)