Название: XML Сериализация. Отправлено: max1983 от Июль 20, 2009, 19:15 Есть предположим XML файл и его надо Десериализовать.
То есть прочитать и заснуть в класс. В VS есть утилита xsd которая гененрила файл .h в котором и описывалось схема xml и примерно таким способом можно получить данные: Цитировать
А как средствами QT можно сделать похожее? Название: Re: XML Сериализация. Отправлено: break от Июль 21, 2009, 00:29 Из приведенного фрагмента кода я ничего не понял.
Но если предположить что у вас в Xml описание какие экземпляры каких классов надо создать - то читать Xml через QtXml и сделать оставшуюся работу. DOM - изначально не сериализованные данные - т.е. Xml читается целиком с поддержкой всех вложенных структур и т.д. То есть десириализовывать ничего не нужно - оно и так в объектном виде. Нужно только создать нужные классы. Название: Re: XML Сериализация. Отправлено: max1983 от Июль 21, 2009, 08:43 Цитировать Из приведенного фрагмента кода я ничего не понял. Я сам иногда не понимаю что пишу ;)Просто в QT обнаружил аналогичный класс QXmlSerializer Логично предположил что он делает тоже самое. Только примеров не нашел, и зачем он так и не понял. Вот тут есть маленький пример цель которого я так и не понял http://doc.trolltech.com/main-snapshot/qxmlquery.html Цитировать Но если предположить что у вас в Xml описание какие экземпляры каких классов надо создать - то читать Xml через QtXml и сделать оставшуюся работу. DOM - изначально не сериализованные данные - т.е. Xml читается целиком с поддержкой всех вложенных структур и т.д. То есть десириализовывать ничего не нужно - оно и так в объектном виде. Нужно только создать нужные классы. Я так понимаю вы мне предлагаете - циклом заполнять свои классы? Эта идея не нова. :-\ Десериализовать - подразумевалось заполнить данными свой класс из прочитанного XML; Название: Re: XML Сериализация. Отправлено: BigZ от Июль 21, 2009, 08:48 Есть предположим XML файл и его надо Десериализовать. То есть прочитать и заснуть в класс. В VS есть утилита xsd которая гененрила файл .h в котором и описывалось схема xml и примерно таким способом можно получить данные: Цитировать
А как средствами QT можно сделать похожее? Какой тип нужно сериализовать/десериализовать? Название: Re: XML Сериализация. Отправлено: max1983 от Июль 21, 2009, 09:18 Цитировать Какой тип нужно сериализовать/десериализовать? Код:
Как видеш компания разношёрстная И String и дата и Double ну эт ток кусок в середине много еще елементов Название: Re: XML Сериализация. Отправлено: BigZ от Июль 21, 2009, 10:15 В Qt не видно прямой поддержки серелизации/десерелизаци. Для простых типов вроде не сложно сделать. У вас там простые типы. Для сложных UI типов, наследников QWidget, можно попробовать посмотреть QAbstractFormBuilder.
Название: Re: XML Сериализация. Отправлено: max1983 от Июль 21, 2009, 15:10 Для простых типов вроде не сложно сделать. У вас там простые типы. Все верно.Только у меня много этих простых типов. То есть много разных XML c простыми типами. И под каждый XML делать цикл надо. Цитировать В Qt не видно прямой поддержки серелизации/десерелизаци. А может кто знает стороннию либу под C++? ???Название: Re: XML Сериализация. Отправлено: BigZ от Июль 21, 2009, 16:49 Для простых типов вроде не сложно сделать. У вас там простые типы. Все верно.Только у меня много этих простых типов. То есть много разных XML c простыми типами. И под каждый XML делать цикл надо. по XML и пользуясь метаинформацией выставлять попутно соответствующим свойствам значения из XML. class MicroBetActivLine: public QObject Q_OBJECT public: Q_PROPERTY(ID, ...) Q_PROPERTY(SportID, ...) Q_PROPERTY(TitleID, ...) ... }; Название: Re: XML Сериализация. Отправлено: Rcus от Июль 21, 2009, 16:58 Если есть какая-то общая задача, то первым делом надо смотреть в буст :) http://www.boost.org/doc/libs/1_39_0/libs/serialization/doc/index.html (там же есть ссылки и на другие библиотеки для сериализации)
Название: Re: XML Сериализация. Отправлено: TESTER от Сентябрь 16, 2009, 16:42 А может кто знает стороннию либу под C++? ??? Поиск по SF:[(Lib) + XML]: http://sourceforge.net/search/index.php?words=%28%2BLib%29+AND+trove%3A%28559%29 [(QT) + XML]: http://sourceforge.net/search/index.php?words=%28%2BQT%29+AND+trove%3A%28559%29 [(C++) + XML]: http://sourceforge.net/search/index.php?words=%28%2BC%2B%2B%29+AND+trove%3A%28559%29 |