/
Zamar_Terrier
/
TigorEngineWeb
Обзор
Документация
Войти
/
Zamar_Terrier
/
TigorEngineWeb
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
includes/xml_parser.h
57 строк
2 KB
Zamar_Terrier
add json and xml parsers
12 мар 2026, 17:40
12 мар 2026, 17:40
becab97
Код
Авторство
О чём код?
#ifndef XML_PARSER_H #define XML_PARSER_H #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> // Структура для хранения атрибута typedef struct { char* name; char* value; } xml_attribute_t; // Структура для хранения узла XML typedef struct xml_node { char* name; char* value; struct xml_node* parent; struct xml_node* children; struct xml_node* next; xml_attribute_t* attributes; int attr_count; int child_count; } xml_node_t; // Создание нового узла xml_node_t* xml_create_node(const char* name); // Освобождение памяти узла и всех его потомков void xml_free_node(xml_node_t* node); // Добавление атрибута к узлу int xml_add_attribute(xml_node_t* node, const char* name, const char* value); // Получение значения атрибута по имени char* xml_get_attribute(xml_node_t* node, const char* name); // Добавление дочернего узла int xml_add_child(xml_node_t* parent, xml_node_t* child); // Поиск узла по имени (в глубину) xml_node_t* xml_find_node(xml_node_t* root, const char* name); // Парсинг XML из строки xml_node_t* xml_parse(const char **str_point, xml_node_t *parent); // Сериализация XML-узла в строку char* xml_serialize(xml_node_t* node); // Чтение XML из файла xml_node_t* xml_read_file(const char* filename); // Запись XML в файл int xml_write_file(xml_node_t* node, const char* filename); #endif // XML_PARSER_H