![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
CosmoMan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 12.7.2005 Где: Харьков Репутация: -1 Всего: 0 |
Есть XML файл наподобие такого:
Нужно считывать последовательно в cтруктуру или класс значения в item-ах. Работаю в Visual Studio 2005 или 2008. Парсер tinyxml Вот пример кода из примера для tinyxml:
Как теперь можно получить строку name и значение каждого item-ма ? Пожалуйста, помогите решить эту проблему. |
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
почитайте доку к парсеру.
а я б на вашем месте делал не так, а.. 1) сделать xsd схему для xml-ки 2) натравить на эту схему вот этот парсер http://www.codesynthesis.com/products/xsd/ 3)он выдаст на выходе либо DOM либо SAX типизированный класс, базой для которого будет Xerces C++ (по умолчанию). а далее весь парсинг будет заключаться в работе с "массивом"... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
CosmoMan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 12.7.2005 Где: Харьков Репутация: -1 Всего: 0 |
Так и сделал с утра, на свежую голову во всём разобрался. Парсер работает нормально.
Интересно. Это действительно удобно. Попробую. Спасибо. У меня сей час такая проблема. Парсер значения считывает не в юникаде, а в ASCII и, как следсвтвие, русский в виду кркозябин. Тот парсер, что вы рекомендуете, позволяет работать с wchar_t ? |
||||
|
|||||
Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
Это ведь из Вашего файла? TinyXML умеет читать в юникоде, но для этого нужен юникодный xml-файл. --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
CosmoMan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 12.7.2005 Где: Харьков Репутация: -1 Всего: 0 |
Да, но это я сам написал, что кодировка windows-1251. А как сделать xml-файл юникодным? Мне казалось, что он уже изначально юникодный, главное указать кодировку. |
||||
|
|||||
Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
CosmoMan
Ну в каком-нить текстовом редакторе, типа Notepad++ можно конвертнуть файл в нужную кодировку. И потом написать в начале:
например. Кажется, кстати, что TinyXml ругается, если не совпадает кодировка с тем, что написано в начале файла. --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |