美食网站开发意义,大连筑成建设集团有限公司网站,dede 网站模板,十大营销策划公司排名rapidxml是一个快速的xml库#xff0c;由C模板实现的高效率xml解析库#xff0c;同时也是boost库的property_tree的内置解析库。 当时rapidxml时#xff0c;只需要把rapidxml.hpp 、 rapidxml_print.hpp 和 rapidxml_utils.hpp 三个文件拷贝到你的工程目录下#xff0c;就可… rapidxml是一个快速的xml库由C模板实现的高效率xml解析库同时也是boost库的property_tree的内置解析库。 当时rapidxml时只需要把rapidxml.hpp 、 rapidxml_print.hpp 和 rapidxml_utils.hpp 三个文件拷贝到你的工程目录下就可以了。 下面的是测试代码 main.cpp #include iostream
#include string
#include vector
#include rapidxml/rapidxml.hpp
#include rapidxml/rapidxml_print.hpp
#include rapidxml/rapidxml_utils.hppusing namespace std;int main(int argc, char** argv) {vectorstring v_str ;vectorstring::iterator it ;v_str.push_back(111111);v_str.push_back(222222);v_str.push_back(333333);v_str.push_back(444444);using namespace rapidxml;xml_document doc; //构造一个空的xml文档xml_node* rot doc.allocate_node(rapidxml::node_pi, doc.allocate_string(setting.xml version1.0 encodingutf-8));//allocate_node分配一个节点该节点类型为node_pi对XML文件进行描描述内容在allocate_string中doc.append_node(rot); //把该节点添加到doc中xml_node* node doc.allocate_node(node_element, root, NULLxml_node* analysis doc.allocate_node(node_element, Analysis, NULL);node-append_node(analysis);for (it v_str.begin(); it ! v_str.end(); it) {xml_node* soinfo doc.allocate_node(node_element, soinfo, NULL);soinfo-append_attribute(doc.allocate_attribute(key, it-c_str()));analysis-append_node(soinfo);}xml_node* Output doc.allocate_node(node_element, Output, NULL);node-append_node(Output);xml_node* outinfo doc.allocate_node(node_element, outinfo, NULL);Output-append_node(outinfo);for (int j 0;j 2; j) {xml_node* type doc.allocate_node(node_element, desc, NULL); //分配一个type节点type-append_attribute(doc.allocate_attribute(path, 123));type-append_attribute(doc.allocate_attribute(relation, 345));type-append_attribute(doc.allocate_attribute(priority, 567));outinfo-append_node(type); //把type节点添加到节点outinfo中}for (it v_str.begin(); it ! v_str.end(); it) {xml_node* rule doc.allocate_node(node_element, rule, NULL);Output-append_node(rule);for (int i 0; i 2 ; i) {xml_node* cond doc.allocate_node(node_element, cond, NULL);cond-append_attribute(doc.allocate_attribute(key, 123));cond-append_attribute(doc.allocate_attribute(value, 345));cond-append_attribute(doc.allocate_attribute(relation,567));rule-append_node(cond);}xml_node* out doc.allocate_node(node_element, out, NULL);out-append_attribute(doc.allocate_attribute(where, it-c_str()));rule-append_node(out);}doc.append_node(node);std::ofstream pout(config.xml);pout doc;return 0;
}下面是生成的xml文件 config.xml ?setting.xml version1.0 encodingutf-8 ?
rootAnalysissoinfo key111111/soinfo key222222/soinfo key333333/soinfo key444444//AnalysisOutputoutinfodesc path123 relation345 priority567/desc path123 relation345 priority567//outinforulecond key123 value345 relation567/cond key123 value345 relation567/out where111111//rulerulecond key123 value345 relation567/cond key123 value345 relation567/out where222222//rulerulecond key123 value345 relation567/cond key123 value345 relation567/out where333333//rulerulecond key123 value345 relation567/cond key123 value345 relation567/out where444444//rule/Output
/root