#pragma once #include #include #include #include namespace hgl { namespace xml { //TreeXML可以直接将整个XML解晰到一个树形结构中 //对于访问解晰非常的友好 //但由于要一次性保存整个树形结构,所以对内存消耗较大,且必须等到整个XML解晰完才可以访问。 //所以TreeXML仅限于对小型XML文件的解晰,对于大型XML文件,还是使用XMLParse进行流式解晰比较好。 struct TreeXMLData { using XSVList=List; public: U8StringView xml_raw_data; /// abcdefg element_name root atts atts=info data abcdefg */ TreeXMLData * xml_raw_data; int element_name; ///<元素点名字视图 List> atts; ///<属性点文字视图 int data; ///<数据文本视图 private: TreeXMLNode(TreeXMLData *,int); void AddAtts(int,int); void SetData(int); public: const U8StringView *GetElementName()const; const U8StringView *GetAtts(const U8String &); const U8StringView *GetAtts(const U8StringView &); const U8StringView *GetData()const; }; TreeXMLNode *ParseXMLToTree(U8StringView); }//namespace xml }//namespace hgl