Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2011, 15:45   #1
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию Вместе пишем XMLParser class

Пересмотрел все темы на форуме посвящённые XML, но так и не нашёл простого и легкодоступного способа подключения XML парсера к проектам созданным на С++ и в среде Borland C++ Builder.
Темы касающиеся этого вопроса или эаканчиваются после двух - трёх туманных комментариев, или вообще остаються без оных.
Поиск по интернету тоже практически ничего не дал.
Везде используется либо DOM, либо Framework, либо PHP.
Подключить DOM и Framework к своему проекту мне так и не удалось.
Решил написать свой парсер.

А вопрос собственно такой: Большая часть работы уже выполнена. Сам парсер работает, но мне никогда ещё не приходилось сталкиваться с деревьям написанными на С++ (я работал с ними ещё на Turbo Pascal). Изучить всё это можно, но время поджимает (ещё пара месяцев есть, но они не резиновые).
Если кто разбирается в древовидных структурах, подключайтесь к этому проекту. В результате мы получим хоть и простенький, но весьма полезный для всех класс.

Данный парсер поддерживает следующие структуры:
<name attribute="value"/> // тег без замыкающего тега и межтегового текста;
<name attribute="value"></name> // тег с замыкающим тегом без межтегового текста;
<name attribute="">Text</name> // тег с замыкающим тегом и с межтеговым текстом.
Теги такого вида <? и <! рассматриваются как комментарии и пропускаются.

В парсере имеются три приватные функции:
Код:
// Имя и атрибуты тега получены
bool XmlParser::beginTag(string tagID, int numParams, TagArg params[10]);
Сдесь ID - имя тега, numParams - количество параметров, params[10] - список параметров

Код:
// Текст между тегами получен
void XmlParser::doInside(string tagText);
Сдесь tagText - межтеговый текст

Код:
// Имя закрывающего тега получено
void XmlParser::endTag(string tagID);
Сдесь tagID - имя закрывающего тега

Необходимо, на основе этих функций, сформировать дерево (структура дерева в приложении) и функции управления этим деревом.
Функции:
Вставить узел между узлами (InsertNode)
Добавить узел (AddNode)
Удалить узел (DelNode
Найти узел (SearchNode)
Сформировать XML файл из созданного дерева (CreateFile)
Вложения
Тип файла: rar XMLParser.rar (14.8 Кб, 26 просмотров)
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 30.03.2011 в 19:44.
Smitt&Wesson вне форума Ответить с цитированием
Старый 31.03.2011, 09:20   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Ну, что спецы, никто так и не хочет поразмять мозги?
Ммм-да. Придётся самому...
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 29.04.2011, 20:57   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

[QUOTE=Smitt&Wesson;767239/QUOTE]
Спасибо за отклилик, но я парофи. То, вы сказали, это известно...
Вопрос остаётся открытым....
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишем форум для новачков ))) pufystyj PHP 6 24.02.2011 15:55
Загрузить библиотеку вместе сразу вместе с программой Anekdot Общие вопросы Delphi 4 26.01.2010 23:14
XMLParser не работает MaryM Общие вопросы Delphi 1 07.09.2007 16:35