一、以rapidxml::node_declaration形式写xml文件第一行
1 int write(void) 2 { 3 int ret = 0; 4 5 rapidxml::xml_document<> doc; 6 rapidxml::xml_node<> *declear = doc.allocate_node(rapidxml::node_declaration); 7 declear->append_attribute(doc.allocate_attribute("version", "1.0")); 8 declear->append_attribute(doc.allocate_attribute("encoding", "utf-8")); 9 doc.append_node(declear); 10 11 rapidxml::xml_node<> *p_root_comment = doc.allocate_node(rapidxml::node_comment, NULL, "根节点注释"); 12 doc.append_node(p_root_comment); 13 14 rapidxml::xml_node<> *p_root = doc.allocate_node(rapidxml::node_element, "Root"); 15 doc.append_node(p_root); 16 17 p_root->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "信息")); 18 rapidxml::xml_node<> *p_one_node = doc.allocate_node(rapidxml::node_element, "Information"); 19 p_one_node->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "姓名")); 20 p_one_node->append_node(doc.allocate_node(rapidxml::node_element, "Name", "Toney")); 21 p_one_node->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "年龄")); 22 p_one_node->append_node(doc.allocate_node(rapidxml::node_element, "Age", "23")); 23 p_one_node->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "身份ID")); 24 p_one_node->append_node(doc.allocate_node(rapidxml::node_element, "ID", "5132232323423")); 25 p_root->append_node(p_one_node); 26 27 p_root->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "成绩")); 28 rapidxml::xml_node<> *p_second_node = doc.allocate_node(rapidxml::node_element, "Score"); 29 p_second_node->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "语文")); 30 p_second_node->append_node(doc.allocate_node(rapidxml::node_element, "语文", "89")); 31 p_second_node->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "数学")); 32 p_second_node->append_node(doc.allocate_node(rapidxml::node_element, "数学", "97")); 33 p_second_node->append_node(doc.allocate_node(rapidxml::node_comment, NULL, "英语")); 34 p_second_node->append_node(doc.allocate_node(rapidxml::node_element, "英语", "89")); 35 p_root->append_node(p_second_node); 36 37 std::string str_text; 38 str_text.clear(); 39 rapidxml::print(std::back_inserter(str_text), doc); 40 doc.clear(); 41 42 std::ofstream out("testInfor.xml"); 43 out << str_text; 44 45 std::cout << str_text.c_str() << std::endl; 46 47 system("pause"); 48 49 return ret; 50 }
运行结果: