Страница: 1 |
Страница: 1 |
Вопрос: XML & Stream
Добавлено: 21.07.06 15:37
Автор вопроса: LamerOnLine | ICQ: 334781088
Вопрос довольно простой - как в Microsoft XML v4.0 организовать постепенную загрузку XML файла?
То есть, мне нужно распарсить, скажем, 80Мб xml файло, но грузить его сходу в память нерационально. Это вообще возможно? Хоть и маловероятно, ибо все ноды, ИМХО, съедут нах.
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Nash Bridges
Вопросов: 5
Ответов: 139
Профиль | | #1
Добавлено: 28.07.06 01:43
ну так как и во многих парсерах XML - две темы: дерево нод и SAX. последнее как раз и делает callback по мере парсинга XML.
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 28.07.06 11:08
Да, пытался подрулить приложение под SAX, но такое впечатление - MSXML2 как-то по тупому его представляет (в частности, не догнал как через saxreader получить дерево нодов). Юзаю DOM, но на больших файлах идут лаги. В нете рекомендуют коммерческие парсеры типа XMLPro и т.п. Выбрать сложновато, ибо инфы мало, а в xml я полный нуб.
ЗЫ Давненько тебя не было
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 28.07.06 12:05
В догонку: никто не сталкивался с таким лагом -
DOMDocument40.namespaces as XMLSchemaCache - адресует свойство validateOnLoad, присущее XMLSchemaCache40. В результате - Object doesn't support this property or method. Соответственно, selectNodes etc не работает. В DOMDocument40 все нормально. Может это глюк с кривой регистрацией или конфликт версий?
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 28.07.06 12:06
Пардон, нормально все в DOMDocument30. Опечатка.
Номер ответа: 5
Автор ответа:
Nash Bridges
Вопросов: 5
Ответов: 139
Профиль | | #5
Добавлено: 31.07.06 08:55
2LamerOnLine, да я в принципе тут. только читаю иногда. а в основном на исходниках и еще bbs.vbstreets.ru читаю.
а с MSXML - да, надо разбираться я, в принципе, когда делал в свое время, все что нужно получалось.