OXml

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

OXml

Сообщение resident »

Здравствуйте!
Хочу поделится найденной шикарной библиотекой для работы с XML файлами. Называется OXml, автор (или один из авторов?) Ondrej Pokorny.
Хомяк:
http://www.kluug.net/oxml.php
Скачать можно тут, нажав кнопку Download Snapshot (уже было несколько изменений, а с релизом автор что-то тянет):
http://sourceforge.net/p/oxml/code/HEAD/tree/
Релизы:
http://sourceforge.net/projects/oxml/files/
Обсуждение (регистрация не нужна):
http://sourceforge.net/p/oxml/discussion/general/

В Лазарус не устанавливается, просто подключаются нужные модули к проекту. Хорошо понятный код и примеры на Лазарусе (там и проект в архиве).
Судя по тестам, у OXml самая большая скорость из всех доступных парсеров. Автор быстро отвечает на вопросы и делает исправления.
Кроме DOM и SAX, есть последовательный Sequential DOM parser.

Есть две реализации OXmlPDOM.pas - Record-based, OXmlCDOM.pas - TObject-based
Если использовать основанные на записи, то в Лазарусе приходится разыменовывать указатели. Я использую основанные на объектах.

Что еще сказать? Дефолтный Лазарусовский XML мне вроде больше не нужен, пока проект переделал на OXml, а там посмотрим :)
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

XSLT преобразование есть?
ЗЫ. Времени смотреть нет.
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

vada писал(а):XSLT преобразование есть?

Нет

з.ы. Кстати, библиотека понимает кодировку "windows-1251" файла. С Лазарусовским приходилось перегонять в UTF самому :)
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

resident писал(а):С Лазарусовским приходилось перегонять в UTF самому

Там всё норм. Ничего гонять не надо.
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

alexs писал(а):Там всё норм. Ничего гонять не надо.

Странно.
Не могли бы вы показать рабочий пример? Интересно как это сделать без перегона. Не исключаю, что я не знаю какой-то тайны или свойств Лазарусовского XML :)

з.ы.
Вот, к примеру, названия валют вывести из файла:
http://www.cbr.ru/scripts/XML_daily.asp
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Для парсера из пакета fcl-xml достаточно подключить к проекту модуль декодирования, как описано здесь: http://wiki.freepascal.org/XML_Decoders/ru
Сам код чтения менять не нужно.
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

Sergei I. Gorelkin писал(а):Для парсера из пакета fcl-xml достаточно подключить к проекту модуль декодирования

Это по вашей ссылке:
Он связан с библиотекой iconv.dll "родной" сборки (т.е. не из состава cygwin или mingw), которую придется распространять вместе с приложением.

http://www.youtube.com/watch?v=bXQ1NxuW-gM
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

Добрый ребята и девчата. Кто-нибудь с помощью описанных выше библиотек работал с файлами нашего ПФР? Там кроме кодировки 1251 еще одна засада - элементы и атрибуты на кириллице...
Поделитесь опытом под лазарус
ОС windows 10 x64 , Lazarus 1.6 x86_64-win64-win32/win64, FPC 3.0.0

Закрываю свой вопрос. Списался с разработчиком и получил ответ: Для лазарус и его UTF-8 нужно в настройках reader и writer указать .ReaderSettings.StrictXML:=false; или .WriterSettings.StrictXML:=false;

Вот.
naum_off
незнакомец
Сообщения: 6
Зарегистрирован: 25.08.2016 12:31:45

Сообщение naum_off »

gvido
Большое спасибо. Сам споткнулся на файлах ПФР.
А библиотечка действительно замечательная. Пользуюсь уже несколько лет, еще со времен Delphi. Быстрая, мощная, удобная и стабильная. Пару раз выручал SAX-парсер на файлах по 500 МБ.
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

naum_off писал(а):gvido
Большое спасибо. Сам споткнулся на файлах ПФР.
А библиотечка действительно замечательная. Пользуюсь уже несколько лет, еще со времен Delphi. Быстрая, мощная, удобная и стабильная. Пару раз выручал SAX-парсер на файлах по 500 МБ.


Да, как бы не за что. Тут все так поступают. Делятся идеями, находками, опытом.
yus
новенький
Сообщения: 27
Зарегистрирован: 29.03.2015 13:29:29
Откуда: Москва

Сообщение yus »

Как я понял библиотека стала полностью платной.
IHmG
незнакомец
Сообщения: 2
Зарегистрирован: 04.08.2017 07:40:44

Сообщение IHmG »

yus писал(а):Как я понял библиотека стала полностью платной.

где такое прочитали?

как раз сейчас ищем библиотеку для работы из Lezarus (саму среду установил только вчера, прошу сильно не пинать... но лет 10 назад был опыт работы на Delphi) и пользовательское требование "использовать free", продукт будет патентоваться
tema
постоялец
Сообщения: 376
Зарегистрирован: 24.03.2011 19:19:27

Сообщение tema »

Выложите, пожалуйста, кто-нибудь последнюю Open source версию... А то везде поудалено....
IHmG
незнакомец
Сообщения: 2
Зарегистрирован: 04.08.2017 07:40:44

Сообщение IHmG »

tema писал(а):будь последнюю Open source версию... А то везде поудалено....

+1
yus
новенький
Сообщения: 27
Зарегистрирован: 29.03.2015 13:29:29
Откуда: Москва

Сообщение yus »

Ответить