На работе приходят выгрузки из одной Конторы в виде XML-файлов размеры которых доходят до 60 мегабайт
Я написал порграмму на С# которая конвертит эти файлы в SQL базы
но каждое обновление нада индексировать
Может мне кто нибудь подсказать как мневытянуть нужную информацию из этих больших файлов со сложной структройи затолкать в SQL базу, что бы не мучится с индексацией
8 июня 2009 в 22:05
SAX?
8 июня 2009 в 15:02
может чем поможет использование LINQ? //msdn.microsoft.com/ru-ru/library/bb655883.aspx
8 июня 2009 в 15:01
видите ли я пальцем и не трогаю этот XML- файл и мне нет дела до его структуры, а Xml Text Reader есди делать мне нада значть внутреннюю структуру разбираться в этом,
тем более всего не усмотришь обновления могут приходить с новыми таблицами или без некоторых таблиц а в моей выгрузке и индексации ве это предусмотрено
8 июня 2009 в 14:05
в C# есть такой класс как dataset
в него можно загрузить XML-файл при этом он его парсит и разбивает на таблицыпри этом он создает собственные поля(уникальные ключи типа автоинкремент) и связывает эти таблицы
если приходит новое обновления и я строю на его основебазу
поля созданные этим классом начинаются снова с единицы
Для этого я написал прогу на делфи которая индексирует обновление на основе накопительной базы
то есть если такая запись встречалась то проставляем ключ из старой базы
если нет то новы выставляем
в опщем там много еще всяких ньюансов просто я не могу разгласить информацию находящуюся в файле
8 июня 2009 в 14:05
как только проиндексировали
запихиваем обновление в накопительную базу
в опщем целый программный комплекс получился
8 июня 2009 в 14:05
Для этого есть XmlTextReader читаете то что нужно и сохраняете то что нужно.
8 июня 2009 в 13:02
60мб это какбэ немного; может, даже XPath будет приемлемо работать.
Что в твоей задаче значит "индексировать"?
8 июня 2009 в 12:03
Только парсинг, никак иначе. Попробуй при заполнении БД сразу создавать индексы, может, пойдёт дело шустрее.