44 lines
1.0 KiB
C++
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 |