Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка документа из XML-файла, Пара вопросов про XML 
:(
    Опции темы
Louken
Дата 13.9.2008, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 13.9.2008
Где: Кострома

Репутация: 1
Всего: 1



Здраствуйте.
Пишу проект - некий редактор, где есть родитель, дочерние контролы, у них есть свои настройки. Есть возможность сохранения проекта в файл. Сейчас все сохраняется в бинарный файл, но хочеться перенести это дело в XML, чтобы при выпуске новых версий программы можно было открывать старые файлы, в которых структура файла другая.

Вот проблемма в парсинге XML-файла. Нет, конечно можно заюзать TXMLDocument, но он тормоз и неудобен. Прочитал про SAX парсер, удобная штука, но вот не могу найти ее реализацию для Delphi. Собственно в этом и вопрос, кто нибудь знает про это?

И еще вопрос, допустим мне для контрола нужно загрузить какие то данные,
Также еще интерисует как обрабатывать элеенты XML. Допустим, загрузили очередное свойство для контрола - "Width" и получили его значение - "5", это чтоже, мне делать большой и мохнатый if then else, где перечислять все свойства и искать нужное, для того чтобы установить это свойство контролу?

Ну и пока последний вопрос, для чего нужно пространство имен в XML?
PM MAIL ICQ   Вверх
Rrader
  Дата 14.9.2008, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Цитата(Louken @  14.9.2008,  05:26 Найти цитируемый пост)
Также еще интерисует как обрабатывать элеенты XML. Допустим, загрузили очередное свойство для контрола - "Width" и получили его значение - "5", это чтоже, мне делать большой и мохнатый if then else, где перечислять все свойства и искать нужное, для того чтобы установить это свойство контролу?

Published-свойства можно задавать по имени. Примеры здесь.

Цитата(Louken @  14.9.2008,  05:26 Найти цитируемый пост)
но вот не могу найти ее реализацию для Delphi

Да их полно, вот, например.

Вот еще весьма неплохой парсер:
janXML Parser

Цитата(Louken @  14.9.2008,  05:26 Найти цитируемый пост)
Ну и пока последний вопрос, для чего нужно пространство имен в XML?

Пространство имён (XML)



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Louken
Дата 14.9.2008, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 13.9.2008
Где: Кострома

Репутация: 1
Всего: 1



Цитата(Rrader @  14.9.2008,  05:55 Найти цитируемый пост)
Published-свойства можно задавать по имени. Примеры здесь.

Об этом я думал, только будет ли это эффективно, особенно если надо много массивов и property - свойств загружать?

Цитата(Rrader @  14.9.2008,  05:55 Найти цитируемый пост)
Да их полно, вот, например.
Вот еще весьма неплохой парсер: janXML Parser

Спасибо, вечером буду смотреть

Цитата(Rrader @  14.9.2008,  05:55 Найти цитируемый пост)
Пространство имён (XML)

википедию читал, но не понятно, смотрел много всяких XMLок, но все равно безтолку, можете как нить попроще объяснить, а так наверно придеться без них работать. Да, и почему просто вместо какого нибудь слова, обязательно нужно URL адрес впихивать, это же сильно увеличивает размер файла, да и удобочитаемость снижается?
PM MAIL ICQ   Вверх
Rrader
  Дата 14.9.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Цитата(Louken @  14.9.2008,  13:53 Найти цитируемый пост)
википедию читал, но не понятно, смотрел много всяких XMLок, но все равно безтолку, можете как нить попроще объяснить, а так наверно придеться без них работать

Цитата

Пространства имен XML созданы для того, чтобы присваивать каждому элементу и атрибуту уникальное имя. Это позволяет выполнять целый ряд действий, таких как: 
-объединять фрагменты различных документов без возникновения конфликтов имен; 
-писать модули кодов, которые могут многократно использоваться и вызываться для определенных элементов и атрибутов. Уникальные имена гарантируют, что такие модули будут вызываться только для необходимых элементов и атрибутов; 
-определять элементы и атрибуты, которые могут использоваться в других схемах или реальных документах без опасности вызвать конфликт имен. Например, элементы XHTML могут использоваться в каталоге запчастей для их описания, а нулевые атрибуты, определенные в схемах XML, - для обозначения пропущенных значений.

Из http://www.citforum.ru/internet/xml/xml_namespaces/
Цитата(Louken @  14.9.2008,  13:53 Найти цитируемый пост)
Да, и почему просто вместо какого нибудь слова, обязательно нужно URL адрес впихивать, это же сильно увеличивает размер файла, да и удобочитаемость снижается?

Должна быть определенная спецификация для идентификатора, иначе можно получить коллизии. Те, кто стандарт определял, выбрали URI для идентификатции smile 

Цитата(Louken @  14.9.2008,  13:53 Найти цитируемый пост)
Об этом я думал, только будет ли это эффективно, особенно если надо много массивов и property - свойств загружать?

Все зависит от того, что вы сохраняете. Сохраняемые свойства все published? Массивы отдельно от классов?


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Louken
Дата 15.9.2008, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 13.9.2008
Где: Кострома

Репутация: 1
Всего: 1



Цитата(Rrader @  14.9.2008,  09:06 Найти цитируемый пост)
Из http://www.citforum.ru/internet/xml/xml_namespaces/

интересно, значит не один я испытываю трудность в понимании пространства имен. также обнадежило то, что это далеко не обязательный элемент, значит буду обходиться без этого.

Цитата(Rrader @  14.9.2008,  09:06 Найти цитируемый пост)
Все зависит от того, что вы сохраняете. Сохраняемые свойства все published? Массивы отдельно от классов? 

Свойства, поидее, можно сделать published, но мне, например, также нужно загружать параметры градиентной заливки для объекта, т.е. массив цветов и массив смещений для каждого цвета от начала заливки. Сейчас я просто загружаю эти два массива из бинарного файла, и передаю в процедуру, которая устанавливает, для объекта фона, тип - градиентная заливка. Пока не решил, как это будет сохраняться в XML-файле, соответственно не знаю, как буду это из него грузить.

А вообще, щас тружусь над другой проблемой, про XML пока собираю информацию, чтобы не приходилось переделывать по ходу реализации, кода до этого дойдет дело.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.