pugi::xml_document doc; //添加一个根节点 pugi::xml_node rootNode = doc.append_child("root"); //添加子节点 pugi::xml_node childNode1 = rootNode.append_child("Sen1_Gravity"); childNode1.append_attribute("Gravity")=5; pugi::xml_node childNode2 = rootNode.append_child("Sen2_Gravity"); childNode2.append_attribute("Gravity")=5; childNode2.append_attribute("x")=10; childNode2.append_attribute("y")=10; childNode2.append_attribute("z")=10; pugi::xml_node childNode3; ////在节点之后插入 //rootNode.insert_child_after("safe",childNode1); ////在节点之前插入 //pugi::xml_node nodeCopy = rootNode
2. pugi对xml的读取方法
//////////////////pugi-xml读取xml文件///////////////////////////////////////////////////////////////////////////////// pugi::xml_document doc_read; // 加载xml文件 pugi::xml_parse_result ret = doc_read.load_file(_T("ExternalData.xml"));
//pugixml 解析xml文件------------------------------------------------------------------------ pugi::xml_document doc; char *buf = const_cast<char*>(read_str.c_str()); size_t size=read_str.size()+1; pugi::xml_parse_result ret = doc.load_buffer_inplace(buf,size); // 获得IPOC string ipoc1=doc.child("Rob").child("IPOC").child_value(); // 获得BASE坐标系的坐标值 pkr.x_pos = doc.child("Rob").child("RIst").attribute("X").as_double(); pkr.y_pos = doc.child("Rob").child("RIst").attribute("Y").as_double(); pkr.z_pos = doc.child("Rob").child("RIst").attribute("Z").as_double(); pkr.a_pos = doc.child("Rob").child("RIst").attribute("A").as_double(); pkr.b_pos = doc.child("Rob").child("RIst").attribute("B").as_double(); pkr.c_pos = doc.child("Rob").child("RIst").attribute("C").as_double(); pkr.A6_ang= doc.child("Rob").child("AIPos").attribute("A6").as_double(); double RotAngle = -180 * M_PI / 180; pugi::xml_node n_ipoc=doc_read.child("Sen").child("IPOC"); n_ipoc.text().set(const_cast<char*>(ipoc1.c_str())); doc_read.child("Sen").child("RKorr").attribute("X").set_value(pkr.RKorrX); doc_read.child("Sen").child("RKorr").attribute("Y").set_value(pkr.RKorrY); doc_read.child("Sen").child("RKorr").attribute("Z").set_value(pkr.RKorrZ); doc_read.child("Sen").child("RKorr").attribute("A").set_value(pkr.RKorrA); doc_read.child("Sen").child("RKorr").attribute("B").set_value(pkr.RKorrB); doc_read.child("Sen").child("RKorr").attribute("C").set_value(pkr.RKorrC); //保存xml至字符串 xml_string_writer writer; doc_read.save(writer); string xmlout = writer.result;pugi学习文档:http://pugixml.org/docs/quickstart.html