OneLevelXmlOpr/src/xml_opr.h
taynpg 41713baede func:1.添加删除添加功能。
2.添加编辑属性界面
3.删除添加同步到界面未完成。
2024-05-15 23:06:48 +08:00

44 lines
1.0 KiB
C++

#ifndef XML_OPERT_HEADER
#define XML_OPERT_HEADER
#include <string>
#include <tinyxml2.h>
#include <vector>
#include <map>
#include "../public_def.h"
struct SKeyValue {
SKeyValue(const char* pkey, const char* pvalue);
std::string key;
std::string value;
};
typedef tinyxml2::XMLElement Element_t;
typedef std::vector<SKeyValue> Property_t;
class CXmlOpr
{
public:
CXmlOpr();
~CXmlOpr();
public:
bool open(const std::string& xml_path);
void set_baseinfo(const OprBase& base);
bool parse_xml(std::vector<Element_t*>& vec);
void insert_brother_node(Element_t* brother, Element_t* newer);
Element_t* copy_element(Element_t* ele);
void del_element(Element_t* ele);
bool save();
public:
void get_key_value(Element_t* ele, Property_t& vec);
void key_value_to_element(Element_t* ele, const Property_t& vec);
private:
tinyxml2::XMLDocument doc_{};
OprBase opr_base_{};
std::string xml_path_{};
Element_t* parent_node_{};
};
#endif