| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > boost::property_tree |
| Автор: HellStranger 30.7.2010, 11:08 | ||||||||||
| Всем доброго времени суток. Ещё один вопрос по 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 3.8.2010, 14:07 | ||||
В общем пролблема решилась следующим образом:
Правда для этого пришлось немного видоизменить xml:
Вообще бустовский xml-парсер, ИМХО вещь глупая и глючная до ужаса. Подходит только для того, чтобы парсить примитв как в бустовских туториалах по property_tree. Для xml, чуть сложнее примитива, лучше юзать .NET-решения: оборачивать их в неуправляемую .dll и радоваться жизни! Мне пришлось заюзать, так как уже была привязка к бусту: Их HTTP-клиента заюзал. В общем пожалел стопятьсот раз... |
| Автор: HellStranger 4.8.2010, 11:53 | ||
Поверьте, вполне даже сексуально получается... На RSDN тема есть с примерами обёртки класса Regex. Для пользовательских приложений тормоза .NET не критичны, даже полезны.
Да xml-парсеров предостаточно. Я не хочу здесь обсуждать, какой лучше, какой хуже. Не хотелось за собой таксать сотню open source проектов: визуальная часть- wx, HTTP- boost, xml- тот же самый rapidxml. И так далее. Можно было всё взять из wx, но про xml у Смарта написано, что вещь сырая, будет дорабатываться и без обратной совместимости, с HTTP в wx тоже не всё безоблачно. Пришлось выбрать boost, теперь понял, что выбор был совершенно не правильный, но уже поздно: вроде с горем пополам все проблемы пофиксил... ИМХО, область его применения к xml ограничивается примерами в туториале. |
| Автор: apexmi 23.10.2010, 06:33 |
| Ребят! подскажите, пож-та. Если я хочу парсить xml не из конфигурационного файла, то как мне его запихать в property tree? Есть функция для считывания xml из фаqла. А как быть, если я хочу распарсить какой нить текстовый буфер. Скажем я его получил по tcp/ip. Есть функция для парсинга из потока. Но как мне текст запихать в поток так и не могу понять. |
| Автор: borisbn 23.10.2010, 10:22 | ||||
Qt - не решение ?
|
| Автор: boostcoder 17.12.2010, 11:27 | ||||
искал доку по property_tree, и наткнулся на этот пост. вот так:
Добавлено через 5 минут и 6 секунд а вот и небольшой туториал: http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/ конечно не то что я искал, но может кому сгодится. |
| Автор: xvr 20.12.2010, 15:02 |
| Верю, весьма сексуально Тогда пользуйте MSXML через COM - для Win родное, .NET не требует, стандартный DOM интерфейс, чистый С++, что еще надо? |