singlepost

работа с XML-файлами большого размера << На главную или назад  

На работе приходят выгрузки из одной Конторы в виде XML-файлов размеры которых доходят до 60 мегабайт
Я написал порграмму на С# которая конвертит эти файлы в SQL базы
но каждое обновление нада индексировать
Может мне кто нибудь подсказать как мневытянуть нужную информацию из этих больших файлов со сложной структройи затолкать в SQL базу, что бы не мучится с индексацией

21 ответов в теме “работа с XML-файлами большого размера”

  1. 8
    Антон Щиров ответил:

    SAX?

  2. 7
    Дмитрий Демьянович ответил:

    может чем поможет использование LINQ? //msdn.microsoft.com/ru-ru/library/bb655883.aspx

  3. 6
    Андрей Мазур ответил:

    видите ли я пальцем и не трогаю этот XML- файл и мне нет дела до его структуры, а Xml Text Reader есди делать мне нада значть внутреннюю структуру разбираться в этом,
    тем более всего не усмотришь обновления могут приходить с новыми таблицами или без некоторых таблиц а в моей выгрузке и индексации ве это предусмотрено

  4. 5
    Андрей Мазур ответил:

    в C# есть такой класс как dataset
    в него можно загрузить XML-файл при этом он его парсит и разбивает на таблицыпри этом он создает собственные поля(уникальные ключи типа автоинкремент) и связывает эти таблицы
    если приходит новое обновления и я строю на его основебазу
    поля созданные этим классом начинаются снова с единицы

    Для этого я написал прогу на делфи которая индексирует обновление на основе накопительной базы
    то есть если такая запись встречалась то проставляем ключ из старой базы
    если нет то новы выставляем
    в опщем там много еще всяких ньюансов просто я не могу разгласить информацию находящуюся в файле

  5. 4
    Андрей Мазур ответил:

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

  6. 3
    Евгений Гаврин ответил:

    Для этого есть XmlTextReader читаете то что нужно и сохраняете то что нужно.

  7. 2
    Жека Кирпичев ответил:

    60мб это какбэ немного; может, даже XPath будет приемлемо работать.
    Что в твоей задаче значит "индексировать"?

  8. 1
    Кирилл Быков ответил:

    Только парсинг, никак иначе. Попробуй при заполнении БД сразу создавать индексы, может, пойдёт дело шустрее.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.