Kage Studio 0.7.240121
A Simple Free and Open Source 2D Animation Software
Loading...
Searching...
No Matches
xml.h
Go to the documentation of this file.
1/*
2 * xml.h
3 *
4 * Copyright 2019-2024 Mj Mendoza IV <mj.mendoza.iv@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301, USA.
20 *
21 *
22 */
23
24#ifndef KAGE_UTIL_XML_H
25 #define KAGE_UTIL_XML_H
26
27 #include <vector>
28 #include <string>
29 #include <sstream>
30 #include <iostream>
31 #include <string.h>
32 #include <fstream>
33 #include "xmltagproperty.h"
34 #include "xmltoken.h"
35 #include "xmltag.h"
36
37 class BasicXml {
38 public:
39 BasicXml(std::string p_xmlContent);
40 BasicXml();
41 virtual ~BasicXml();
42
43 void setContent(std::string p_xmlContent);
44 std::string getContent();
45 bool parse(std::string p_content);
46 bool parse();
47
48 void setProperties(std::vector<XmlTagProperty> p_xmlTagProperties);
49 std::string getProperties();
51 std::string toString();
52 void copy(BasicXml p_xmlTag);
53 bool equalTo(BasicXml p_xmlTag);
54
55 std::vector<XmlToken> _tokens;
56 bool tokenize();
58
59 void debugToken(unsigned int p_index);
60 void printXML();
61 std::string getXML();
62 bool setXML(std::string p_xmldata);
63
64 static std::string openXMLFile(std::string p_path);
65 static bool isNumeric(std::string p_value);
66 protected:
67 unsigned int createTag(unsigned int p_index, XmlTag &p_xmlTagParent);
68 unsigned int skipWhitespace(unsigned int p_index);
69 unsigned int expectFor(unsigned int p_index, std::string p_token);
70 unsigned int lookFor(unsigned int p_index, std::string p_token);
71 unsigned int getPreviousIndex(unsigned int p_index);
72 void listChildren(std::vector<XmlTag> p_tags, std::string p_tab);
73 std::string getXMLChildren(std::vector<XmlTag> p_children, std::string p_tab);
74
75 std::string _xmlContent;
76 std::vector<XmlTagProperty> _xmlTagProperties;
78// std::vector<XmlTag> _children;
79 };
80#endif //KAGE_UTIL_XML_H
void debugToken(unsigned int p_index)
Definition xml.cpp:342
virtual ~BasicXml()
Definition xml.cpp:34
XmlTag _root
Definition xml.h:77
unsigned int getPreviousIndex(unsigned int p_index)
Definition xml.cpp:97
BasicXml clone()
void printXML()
Definition xml.cpp:269
static bool isNumeric(std::string p_value)
Definition xml.cpp:109
std::string getXMLChildren(std::vector< XmlTag > p_children, std::string p_tab)
Definition xml.cpp:287
std::string getXML()
Definition xml.cpp:318
unsigned int skipWhitespace(unsigned int p_index)
Definition xml.cpp:63
bool tokenize()
Definition xml.cpp:239
std::vector< XmlToken > _tokens
Definition xml.h:55
bool parse()
Definition xml.cpp:139
bool equalTo(BasicXml p_xmlTag)
std::string toString()
Definition xml.cpp:53
BasicXml()
Definition xml.cpp:26
unsigned int expectFor(unsigned int p_index, std::string p_token)
Definition xml.cpp:73
std::string getProperties()
std::string getContent()
Definition xml.cpp:41
XmlTag getRoot()
Definition xml.cpp:50
void listChildren(std::vector< XmlTag > p_tags, std::string p_tab)
Definition xml.cpp:257
static std::string openXMLFile(std::string p_path)
Definition xml.cpp:539
std::string _xmlContent
Definition xml.h:75
void copy(BasicXml p_xmlTag)
void setProperties(std::vector< XmlTagProperty > p_xmlTagProperties)
void setContent(std::string p_xmlContent)
Definition xml.cpp:38
bool setXML(std::string p_xmldata)
Definition xml.cpp:274
unsigned int lookFor(unsigned int p_index, std::string p_token)
Definition xml.cpp:86
BasicXml(std::string p_xmlContent)
Definition xml.cpp:30
std::vector< XmlTagProperty > _xmlTagProperties
Definition xml.h:76
unsigned int createTag(unsigned int p_index, XmlTag &p_xmlTagParent)
Definition xml.cpp:350
Definition xmltag.h:32