powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Подскажите быструю утилиту для XSLT
10 сообщений из 10, страница 1 из 1
Подскажите быструю утилиту для XSLT
    #37963767
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, можно ли решить задачу XSL преобразования большого файла.
ОС - Windows Server 2008 R2 x64

Необходимо преобразовать XML файл (нужно для упрощения импорта в MSSQL, файл сложной структуры, а нужно вытянуть не все данные, а небольшое подмножество)

Сделал xsl файлик, всё прекрасно преобразовывает, получается простой результатирующий XML. Использовал для преобразования XML Task в SSIS из MS SQL Server

Проверил на маленьком файлике (60 мб), работает 3 секунды. Запустил на нормальном файле (3 гб) - ждал 20 минут, результата не дождался :-( Процессор не загружен, памяти съело 3.2 гига.

Попробовал утилиту MSXSL.EXE, отработала быстро, результат:
Error occurred while loading document ...
Code: 0x8007000e
Not enough storage is available to complete this operation.

Кто нибуть знает нормальную быструю утилиту, которая не пытается загрузить файл в память и распарсить, а преобразовывает потоком (если такое вообще возможно)?

Зараннее спасибо за помощь!
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37964739
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил на нормальном файле (3 гб)Тот, кто делает такие xml, — даун, так ему и передайте.
xml не предназначен для таких объемов.

если такое вообще возможноСомневаюсь. Связанные между собой данные могу находиться в разных концах документа, "потоком" их не достанешь.
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37964810
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Saxon.
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37966164
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЗапустил на нормальном файле (3 гб)Тот, кто делает такие xml, — даун, так ему и передайте.
xml не предназначен для таких объемов.Компания Ericsson делает, предоставляет параметры оборудования сотовой сети :-) Наворотили они там сильно...

Насчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данных, я бы свой формат лучше, удобнее не придумал...
Antonariyесли такое вообще возможноСомневаюсь. Связанные между собой данные могу находиться в разных концах документа, "потоком" их не достанешь.Ясно, спасибо :-(

Читал что-то про новую версию XSLT, что то там с потоковой обработкой, но это, как я понимаю, дело будущего...
MasterZivalexeyvg,

Saxon.Спасибо!

Да, уже встретилось это слово в одном месте (например, в http://clubs.ya.ru/xslt/replies.xml?item_no=1587 ), буду смотреть.

Пока нашёл выход - сделал xsd, полностью разбираю файл и импортирую нужные данные без упрощения через XSLT, файл 3 гб парсится и импортится за 2 минуты.
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37966283
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgНасчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данныхНе предназначен для объемов , а не слабой структуры.
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37966306
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyalexeyvgНасчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данныхНе предназначен для объемов , а не слабой структуры.Это какое-то неформальное определение :-)
Никогда не слышал про такие требования, ИМХО можно использовать XML для любых объёмов, неважно, мегабайты или петабайты. С точки зрения чистой теории, разумеется.

Вот классический XSLT действительно не очень подходит, так как для преобразования нужно его прочитать и построить модель в памяти.
Хотя это не ограничения на размер есть просто неоправданная требовательность к ресурсом и несовершеноство конкретного кода - непонятно, с чего это MSXML не может обработать 3-х гиговый XML на 64-х разрядном процессоре и на 64 гб памяти.

Но если посмотреть на новые расширения ( http://www.w3.org/TR/xslt-21/#streaming , сегодня прочитал :-) ), то там таких ограничений нет, на любом хоть микроконтроллере можно будет обработать файл любого размера.
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37966317
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyalexeyvgНасчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данныхНе предназначен для объемов , а не слабой структуры.А, ещё забыл сказать.

Независимо от "предназначения" XML по факту разные компании используют его для обмена информацией, и приходится решать задачу по получению и обработке таких файлов, так что если я даже соглашусь в Вами, то это приведёт только к тому, что эту задачу буду решать не я :-)

Импорт этого файлика -это вспомогательная задача, а основной импорт (тоже из XML) - намного большего объёма, там сотни гигабайт в день, как большими, так и маленькими файлами.
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37966405
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>_<
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37968726
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение одно - написать свой код, см. класс XmlReader.
Читаем файл не весь, а только интересующие атрибуты.
...
Рейтинг: 0 / 0
Подскажите быструю утилиту для XSLT
    #37968936
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРешение одно - написать свой код, см. класс XmlReader.
Читаем файл не весь, а только интересующие атрибуты.В принципе да, можно использовать XmlReader...

Но раз уж просто читать, то я просто быстро прочитал файл, используя xsd схему, с помощью XMLBulkLoad...
Так ИМХО проще, чем свой преобразователь писать.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Подскажите быструю утилиту для XSLT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]