XMLParserCPP 1.1
Loading...
Searching...
No Matches
XMLAlgorithms.h
1/*
2 * Copyright (C) 2025 Yury Bobylev <bobilev_yury@mail.ru>
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the Free
6 * Software Foundation, version 3.
7 *
8 * This program is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program. If not, see <https://www.gnu.org/licenses/>.
15 */
16#ifndef XMLALGORITHMS_H
17#define XMLALGORITHMS_H
18
19#include <XMLElement.h>
20#include <functional>
21
28{
29public:
34
50 static void
51 searchElement(const std::vector<XMLElement> &elements,
52 const std::string &element_name,
53 std::vector<XMLElement *> &result);
54
70 static void
71 searchElement(const std::vector<XMLElement> &elements,
72 const XMLElement::Type &element_type,
73 std::vector<XMLElement *> &result);
74
91 static void
92 searchElement(const std::vector<XMLElement> &elements,
93 const std::string &element_name,
94 const std::string &attribute_id,
95 std::vector<XMLElement *> &result);
96
114 static void
115 searchElement(const std::vector<XMLElement> &elements,
116 const std::string &element_name,
117 const std::string &attribute_id,
118 const std::string &attribute_value,
119 std::vector<XMLElement *> &result);
120
134 static void
135 searchElement(const std::vector<XMLElement *> &elements,
136 const std::string &element_name,
137 std::vector<XMLElement *> &result);
138
152 static void
153 searchElement(const std::vector<XMLElement *> &elements,
154 const XMLElement::Type &element_type,
155 std::vector<XMLElement *> &result);
156
171 static void
172 searchElement(const std::vector<XMLElement *> &elements,
173 const std::string &element_name,
174 const std::string &attribute_id,
175 std::vector<XMLElement *> &result);
176
193 static void
194 searchElement(const std::vector<XMLElement *> &elements,
195 const std::string &element_name,
196 const std::string &attribute_id,
197 const std::string &attribute_value,
198 std::vector<XMLElement *> &result);
199
213 static void
214 searchElement(const std::vector<XMLElement> &elements,
215 std::function<bool(const XMLElement &)> search_function,
216 std::vector<XMLElement *> &result);
228 static void
229 searchElement(const std::vector<XMLElement *> &elements,
230 std::function<bool(const XMLElement &)> search_function,
231 std::vector<XMLElement *> &result);
232
238 static void
239 writeXML(const std::vector<XMLElement> &elements, std::string &result);
240
246 static void
247 writeXML(const std::vector<XMLElement *> &elements, std::string &result);
248
249private:
250 void
251 writeXMLRecursive(const std::vector<XMLElement> &elements,
252 std::string &result, size_t &tab_count);
253
254 void
255 writeXMLRecursive(const std::vector<XMLElement *> &elements,
256 std::string &result, size_t &tab_count);
257
258 void
259 copyAndReplaceProhibitedSymbols(const std::string &source,
260 std::string &result);
261};
262
263#endif // XMLALGORITHMS_H
static void searchElement(const std::vector< XMLElement * > &elements, const XMLElement::Type &element_type, std::vector< XMLElement * > &result)
Searches for XML elements.
static void searchElement(const std::vector< XMLElement > &elements, const XMLElement::Type &element_type, std::vector< XMLElement * > &result)
Searches for XML elements.
static void searchElement(const std::vector< XMLElement * > &elements, const std::string &element_name, const std::string &attribute_id, std::vector< XMLElement * > &result)
Searches for XML elements.
XMLAlgorithms()
XMLAlgorithms constructor.
static void searchElement(const std::vector< XMLElement > &elements, const std::string &element_name, const std::string &attribute_id, const std::string &attribute_value, std::vector< XMLElement * > &result)
Searches for XML elements.
static void searchElement(const std::vector< XMLElement > &elements, std::function< bool(const XMLElement &)> search_function, std::vector< XMLElement * > &result)
Searches for XML elements.
static void writeXML(const std::vector< XMLElement * > &elements, std::string &result)
Writes XML elements to given string.
static void searchElement(const std::vector< XMLElement > &elements, const std::string &element_name, const std::string &attribute_id, std::vector< XMLElement * > &result)
Searches for XML elements.
static void writeXML(const std::vector< XMLElement > &elements, std::string &result)
Writes XML elements to given string.
static void searchElement(const std::vector< XMLElement > &elements, const std::string &element_name, std::vector< XMLElement * > &result)
Searches for XML elements.
static void searchElement(const std::vector< XMLElement * > &elements, const std::string &element_name, std::vector< XMLElement * > &result)
Searches for XML elements.
static void searchElement(const std::vector< XMLElement * > &elements, std::function< bool(const XMLElement &)> search_function, std::vector< XMLElement * > &result)
Searches for XML elements.
static void searchElement(const std::vector< XMLElement * > &elements, const std::string &element_name, const std::string &attribute_id, const std::string &attribute_value, std::vector< XMLElement * > &result)
Searches for XML elements.
The XMLElement class.
Definition XMLElement.h:29
Type
XML elements types enumerator.
Definition XMLElement.h:88