Создание объекта класса на основе XML-файла без использования библиотеки синтаксического анализа XML - PullRequest
0 голосов
/ 21 мая 2019

Итак, у меня есть этот homewrok, который мне нужен для создания анализатора XML, без использования какой-либо библиотеки синтаксического анализа (например, TinyXML, Xerces и т. Д.). Задача состоит в том, чтобы использовать объектно-ориентированное программирование, поэтому в основном мне нужно хранить каждый элемент как объект некоторого класса, чтобы после этого я мог редактировать его через этот класс и возвращать новые значения в файл xml. (например, если есть элементы с одинаковыми атрибутами «id», мне нужно изменить их ... или получить все дочерние элементы элемента с определенным идентификатором ...) Ниже приведено то, что я написал как класс, но после что я не уверен, как читать файл и хранить информацию в объектах класса. Я искал ответы во многих местах, но если бы я нашел что-нибудь, это было бы за пределами моего уровня, и я едва мог понять это. Я был бы очень благодарен, если бы кто-то помог мне :) Заранее спасибо

#pragma once
#pragma warning(disable : 4996)
using namespace std;

const int MAX_TEXT = 500, MAX_ATR = 10, MAX_NAME = 20;

class Attribute {
private:
    char* attr_name;
    char* attr_value;
public:
    char const* get_attrName() { return attr_name; }
    char const* get_attrValue() { return attr_value; }
    Attribute(char const* n = "<No Attribute>", char const* v = "<Empty>");
    //Attribute(Attribute const& a);

    void set_attrName(char const* n);
    void set_attrValue(char const* v);
};

class Element {
private:
    char name[MAX_NAME];
    char* id;
    char text_content[MAX_TEXT];
    Attribute attr[MAX_ATR];
    Element* children_array;

public:
    Element(char const* ID = "<No ID>", Element* children = nullptr);
    char const* get_elemId() { return id; }
    Attribute get_Attr(int a) { return attr[a]; }     
    void set_elemID(char const* id_name);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...