use u8char instead char in XMLParse
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#ifndef HGL_UTIL_XML_ELEMENT_PARSE_INCLUDE
|
||||
#define HGL_UTIL_XML_ELEMENT_PARSE_INCLUDE
|
||||
|
||||
#include<hgl/type/DataType.h>
|
||||
namespace hgl
|
||||
{
|
||||
namespace xml
|
||||
@@ -14,10 +15,10 @@ namespace hgl
|
||||
|
||||
virtual ~ElementParse()=default;
|
||||
|
||||
virtual bool Start (const char *element_name) {return(true);}
|
||||
virtual void Attr (const char *flag,const char *info) {}
|
||||
virtual void CharData (const char *str,const int str_length) {}
|
||||
virtual void End (const char *element_name) {}
|
||||
virtual bool Start (const u8char *element_name) {return(true);}
|
||||
virtual void Attr (const u8char *flag,const u8char *info) {}
|
||||
virtual void CharData (const u8char *str,const int str_length){}
|
||||
virtual void End (const u8char *element_name) {}
|
||||
};//class ElementParse
|
||||
}//namespace xml
|
||||
}//namespace hgl
|
||||
|
@@ -13,30 +13,30 @@ namespace hgl
|
||||
{
|
||||
friend class ElementParseCreater;
|
||||
|
||||
AnsiString element_name;
|
||||
UTF8String element_name;
|
||||
|
||||
protected:
|
||||
|
||||
Map<AnsiString,ElementCreater *> ecs_map;
|
||||
|
||||
virtual ElementCreater *GetSubElementCreater(const AnsiString &sub_name);
|
||||
virtual ElementCreater *GetSubElementCreater(const UTF8String &sub_name);
|
||||
|
||||
public:
|
||||
|
||||
const AnsiString &GetElementName()const{return element_name;}
|
||||
const UTF8String &GetElementName()const{return element_name;}
|
||||
|
||||
public:
|
||||
|
||||
ElementCreater(const AnsiString &en){element_name=en;}
|
||||
ElementCreater(const UTF8String &en){element_name=en;}
|
||||
virtual ~ElementCreater()=default;
|
||||
|
||||
bool Registry(const AnsiString &name,ElementCreater *ec);
|
||||
bool Registry(ElementCreater *ec);
|
||||
|
||||
public:
|
||||
|
||||
virtual bool Start (){return true;}
|
||||
virtual void Attr (const char *flag,const char *info){}
|
||||
virtual void CharData (const char *str,const int str_length){}
|
||||
virtual void Attr (const u8char *flag,const u8char *info){}
|
||||
virtual void CharData (const u8char *str,const int str_length){}
|
||||
|
||||
virtual void End (){}
|
||||
};//class ElementCreater
|
||||
@@ -63,10 +63,10 @@ namespace hgl
|
||||
|
||||
public:
|
||||
|
||||
bool Start (const char *element_name) override;
|
||||
void Attr (const char *flag,const char *info) override;
|
||||
void CharData (const char *str,const int str_length) override;
|
||||
void End (const char *element_name) override;
|
||||
bool Start (const u8char *element_name) override;
|
||||
void Attr (const u8char *flag,const u8char *info) override;
|
||||
void CharData (const u8char *str,const int str_length) override;
|
||||
void End (const u8char *element_name) override;
|
||||
};//class ElementParseCreater:public ElementParse
|
||||
}//namespace xml
|
||||
}//namespace hgl
|
||||
|
@@ -15,49 +15,49 @@ namespace hgl
|
||||
{
|
||||
protected:
|
||||
|
||||
using AttrsMap=Map<AnsiString,AnsiString>;
|
||||
using AttrItem=Pair<AnsiString,AnsiString>;
|
||||
using AttrsMap=Map<UTF8String,UTF8String>;
|
||||
using AttrItem=Pair<UTF8String,UTF8String>;
|
||||
|
||||
AttrsMap attrs_map;
|
||||
|
||||
protected:
|
||||
|
||||
const AttrItem *GetAttrItem(const AnsiString &name);
|
||||
const AttrItem *GetAttrItem(const UTF8String &name);
|
||||
|
||||
template<typename T> const bool GetInteger (const AnsiString &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stoi(ai->right.c_str(),value):false);}
|
||||
template<typename T> const bool GetUInteger (const AnsiString &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stou(ai->right.c_str(),value):false);}
|
||||
template<typename T> const bool GetFloat (const AnsiString &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stof(ai->right.c_str(),value):false);}
|
||||
template<typename T> const bool GetInteger (const UTF8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stoi(ai->right.c_str(),value):false);}
|
||||
template<typename T> const bool GetUInteger (const UTF8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stou(ai->right.c_str(),value):false);}
|
||||
template<typename T> const bool GetFloat (const UTF8String &name,T &value){const AttrItem *ai=GetAttrItem(name);return(ai?stof(ai->right.c_str(),value):false);}
|
||||
|
||||
public:
|
||||
|
||||
virtual ~ElementParseKV()=default;
|
||||
|
||||
virtual void Attr(const char *flag,const char *info) override;
|
||||
virtual void Attr(const u8char *flag,const u8char *info) override;
|
||||
|
||||
public:
|
||||
|
||||
const bool IsExist (const AnsiString &name)const{return attrs_map.KeyExist(name);}
|
||||
const bool IsExist (const UTF8String &name)const{return attrs_map.KeyExist(name);}
|
||||
|
||||
const char * ToCString (const AnsiString &name){const AttrItem *ai=GetAttrItem(name);return(ai?ai->right.c_str():nullptr);}
|
||||
const char * operator[] (const AnsiString &name){return ToCString(name);}
|
||||
const u8char * ToCString (const UTF8String &name){const AttrItem *ai=GetAttrItem(name);return(ai?ai->right.c_str():nullptr);}
|
||||
const u8char * operator[] (const UTF8String &name){return ToCString(name);}
|
||||
|
||||
public:
|
||||
|
||||
const bool Get(const AnsiString &name,AnsiString &str);
|
||||
const bool Get(const AnsiString &name,UTF16String &str);
|
||||
const bool Get(const AnsiString &name,char &ch);
|
||||
const bool Get(const AnsiString &name,bool &value);
|
||||
const bool Get(const UTF8String &name,UTF8String &str);
|
||||
const bool Get(const UTF8String &name,UTF16String &str);
|
||||
const bool Get(const UTF8String &name,u8char &ch);
|
||||
const bool Get(const UTF8String &name,bool &value);
|
||||
|
||||
const bool Get(const AnsiString &name, int8 &value){return GetInteger < int8 >(name,value);}
|
||||
const bool Get(const AnsiString &name,uint8 &value){return GetUInteger<uint8 >(name,value);}
|
||||
const bool Get(const AnsiString &name, int16 &value){return GetInteger < int16>(name,value);}
|
||||
const bool Get(const AnsiString &name,uint16 &value){return GetUInteger<uint16>(name,value);}
|
||||
const bool Get(const AnsiString &name, int32 &value){return GetInteger < int32>(name,value);}
|
||||
const bool Get(const AnsiString &name,uint32 &value){return GetUInteger<uint32>(name,value);}
|
||||
const bool Get(const AnsiString &name, int64 &value){return GetInteger < int64>(name,value);}
|
||||
const bool Get(const AnsiString &name,uint64 &value){return GetUInteger<uint64>(name,value);}
|
||||
const bool Get(const UTF8String &name, int8 &value){return GetInteger < int8 >(name,value);}
|
||||
const bool Get(const UTF8String &name,uint8 &value){return GetUInteger<uint8 >(name,value);}
|
||||
const bool Get(const UTF8String &name, int16 &value){return GetInteger < int16>(name,value);}
|
||||
const bool Get(const UTF8String &name,uint16 &value){return GetUInteger<uint16>(name,value);}
|
||||
const bool Get(const UTF8String &name, int32 &value){return GetInteger < int32>(name,value);}
|
||||
const bool Get(const UTF8String &name,uint32 &value){return GetUInteger<uint32>(name,value);}
|
||||
const bool Get(const UTF8String &name, int64 &value){return GetInteger < int64>(name,value);}
|
||||
const bool Get(const UTF8String &name,uint64 &value){return GetUInteger<uint64>(name,value);}
|
||||
|
||||
const bool GetHexStr(const AnsiString &name,uint8 *data);
|
||||
const bool GetHexStr(const UTF8String &name,uint8 *data);
|
||||
};//class ElementParseKV:public ElementParse
|
||||
}//namespace xml
|
||||
}//namespace hgl
|
||||
|
Reference in New Issue
Block a user