Имя: Пароль:
1C
 
Как быстро разобрать XML файл
,
0 lim9
 
15.04.15
14:57
Как я понял что обычно в 1с этот файл разбирается в циклах. Ак можно ли это сделать как-то быстрее? скажем как-то загнать его в запрос(?) или еще как?
1 Лефмихалыч
 
15.04.15
15:00
(0) во-первых, откуда уверенность, что в запросе будет быстрее, чем через последовательное чтение? во-вторых, способ-то есть, но у тебя памяти-то хватит всю xml-ку целиком в нее затолкать?
2 anatoly
 
15.04.15
15:04
а как можно ХМЛ-файл "загнать в запрос"??
3 sapphire
 
15.04.15
15:05
(0) Запрос какой? XPath?
4 lim9
 
15.04.15
15:05
(3) не представляю )), просто ищю способ
5 Serg_1960
 
15.04.15
15:13
Как загнать в запрос? "Как-то"(с)- порадовало :)

Имхо: замер производительности - путь к ответу на вопрос "А можно ли это сделать как-то быстрее?".
6 ДенисЧ
 
15.04.15
15:14
ну... Например, XDTO... Но там кучка ограничений...
Есть ещё какой-то DOMДокумент...
Но это будет хуже, чем циелкд
7 sapphire
 
15.04.15
15:17
(6) Что-то, ты, дядя Денис, не то говоришь :)
Причем здесь XDTO?
Xpath/xslt ближе к теме, ИМХО.
8 depthzer0
 
15.04.15
15:29
(0) что значит "разобрать"? известна ли структура?
9 ДенисЧ
 
15.04.15
15:39
(7) ну... Тут зависит от того, что аввтырь хочет )
10 Кир Пластелинин
 
15.04.15
16:56
если xml-файлы относительно небольшие и структура известна, то юзать xpath. особенно спасает возможность использовать "параметры" в xpath.
11 sapphire
 
15.04.15
17:06
(10) Для больших тоже канает.
В общем-то SAX не намного быстрее.
12 Кир Пластелинин
 
15.04.15
17:21
(11) канать то канает, но "тормоза" уже больше чувствуются. хотя - смотря с чем сравнивать.
13 sapphire
 
15.04.15
17:32
(12) Ну Microsoft XML вполне справляется, а уж встроенный в Microsoft SQL SERVER nodes тем паче.
В принципе, 2 ГБ вполне кушает еще в in-memory, если больше то уже приходится использовать файлы+SAX, т.е через указатель на текстовый поток.