![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
HellStranger |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 1.9.2009 Репутация: -2 Всего: -1 |
Всем доброго времени суток. Ещё один вопрос по boost::proprty_tree.
Есть XML
Далее идут одни команды в указанном формате и потом собсвенно XML заканчивается. Внимание вопрос:
Этот код работает, реально получаю поддерево первой команды. Но как мне потом получить чилдренов узла command? При попытке тупо: (понимаю, бред. но уже всё перепробовал)
или
сваливается в exception типа boost::property_tree::ptree_bad_path. Не находит соответствующего узла... И ещё вопросец:
Почему в xmlFilename записывается не "XML/XML_Authorisation_Request.xml", а "\10XML/XML_Authorisation_Request.xml\10", возврат карретки откуда берётся, в xml его не было... Поможите, чем можите в общем. ![]() Это сообщение отредактировал(а) HellStranger - 30.7.2010, 11:14 |
||||||||||
|
|||||||||||
HellStranger |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 1.9.2009 Репутация: -2 Всего: -1 |
В общем пролблема решилась следующим образом:
Правда для этого пришлось немного видоизменить xml:
Вообще бустовский xml-парсер, ИМХО вещь глупая и глючная до ужаса. Подходит только для того, чтобы парсить примитв как в бустовских туториалах по property_tree. Для xml, чуть сложнее примитива, лучше юзать .NET-решения: оборачивать их в неуправляемую .dll и радоваться жизни! Мне пришлось заюзать, так как уже была привязка к бусту: Их HTTP-клиента заюзал. В общем пожалел стопятьсот раз... Это сообщение отредактировал(а) HellStranger - 3.8.2010, 15:19 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
сомнительное удовольствие. Уж лучше тогда воспользуйся парсером rapidxml, который используется property_tree для разбора xml. Имхо, property_tree не совсем для XML предназначено. |
|||
|
||||
HellStranger |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 1.9.2009 Репутация: -2 Всего: -1 |
Поверьте, вполне даже сексуально получается... На RSDN тема есть с примерами обёртки класса Regex. Для пользовательских приложений тормоза .NET не критичны, даже полезны. ![]()
Да xml-парсеров предостаточно. Я не хочу здесь обсуждать, какой лучше, какой хуже. Не хотелось за собой таксать сотню open source проектов: визуальная часть- wx, HTTP- boost, xml- тот же самый rapidxml. И так далее. Можно было всё взять из wx, но про xml у Смарта написано, что вещь сырая, будет дорабатываться и без обратной совместимости, с HTTP в wx тоже не всё безоблачно. Пришлось выбрать boost, теперь понял, что выбор был совершенно не правильный, но уже поздно: вроде с горем пополам все проблемы пофиксил... ИМХО, область его применения к xml ограничивается примерами в туториале. ![]() Это сообщение отредактировал(а) HellStranger - 4.8.2010, 11:58 |
|||
|
||||
apexmi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 23.10.2010 Репутация: нет Всего: нет |
Ребят! подскажите, пож-та. Если я хочу парсить xml не из конфигурационного файла, то как мне его запихать в property tree? Есть функция для считывания xml из фаqла. А как быть, если я хочу распарсить какой нить текстовый буфер. Скажем я его получил по tcp/ip. Есть функция для парсинга из потока. Но как мне текст запихать в поток так и не могу понять.
|
|||
|
||||
borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Qt - не решение ?
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
искал доку по property_tree, и наткнулся на этот пост. вот так:
Добавлено через 5 минут и 6 секунд а вот и небольшой туториал: http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/ конечно не то что я искал, но может кому сгодится. |
||||
|
|||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Верю, весьма сексуально
![]() ![]() Тогда пользуйте MSXML через COM - для Win родное, .NET не требует, стандартный DOM интерфейс, чистый С++, что еще надо? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |