Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.25;
Скачать: CL | DM;

Вниз

Большой XML   Найти похожие ветки 

 
uw ©   (2009-08-27 19:34) [0]

Чем разобрать XML в несколько десятков метров? XMLDocument совсем отказывается :-(


 
Pavia ©   (2009-08-27 19:58) [1]

Свой написть. Тебе же не нужно 100% стандарта поддерживать. Достаточно теги чтобы разобрал. Собственно XML так и задумывался. И вообще от этих XML парсеров толку  ноль всеравно во внутренний формат сам переводишь.


 
TUser ©   (2009-08-27 20:31) [2]

У меня вот такой самописный 10 метров берет легко, думаю и больше распарсит. Формат поддерживается не полностью. в частности не знаем про аттрибуты и комментарии.

http://narod.ru/disk/12496199000/uXmlParser.pas.html


 
Игорь Шевченко ©   (2009-08-27 21:04) [3]

Использовать SAX ?

http://www.skch.net/columns/xml_delphi2.html


 
DVM ©   (2009-08-27 21:44) [4]


> TUser ©  


> Формат поддерживается не полностью.

Это мягко сказано. Дай бог 1% от всех возможностей XML поддерживает. Но в большинстве случаев сгодится.


 
TUser ©   (2009-08-27 21:50) [5]


> Но в большинстве случаев сгодится.

Я бы сказал мягче - во многих случаях. Аттрибутов и комментариев, действительно, не хватает, но все время руки не доходят дописать.


 
uw ©   (2009-08-28 00:40) [6]

Не, то, что мне надо разбирать, как раз и состоит в основном из атрибутов. Более того, встречаются атрибуты-строки, которые суть опять XML. Там, ясное дело, вместо < и >  - < и >. XMLDocument всё это хорошо разбирает, но когда не очень много.

Попробую парсить по частям.


 
uw ©   (2009-08-28 00:42) [7]

Здорово объяcнил! Хотел написать & g t ; (без пробелов), а получилось опять же > :-)


 
ZeroDivide ©   (2009-08-28 09:11) [8]

Формат XML - не для файлов в десятки метров.


 
atruhin ©   (2009-08-28 09:23) [9]

> [0] uw ©   (27.08.09 19:34)

В какой кодировке документ?


 
TUser ©   (2009-08-28 09:39) [10]


> ZeroDivide ©   (28.08.09 09:11) [8]
>
> Формат XML - не для файлов в десятки метров.

Эх, а говорят универсальный. А вообще, - ОО и О2007 хранят документы в зазипованном XML, и этот зазипованный на десятки метров бывает. Как-то справляются.


 
Sergey Masloff   (2009-08-28 09:46) [11]

ZeroDivide ©   (28.08.09 09:11) [8]
>Формат XML - не для файлов в десятки метров.
Иногда лучше жевать ;-) И сотни мегов не проблема абсолютно. Про ОО и новый MS Офис TUser уже сказал ;-) У меня робот входящую отчетность висит разбирает десятки файлов в день некоторые сейчас много сотем МБ. Если бы хоть один не разобрал я бы имел очень много проблем. Но этого не наблюдается...


 
ZeroDivide ©   (2009-08-28 09:57) [12]

Эх, а говорят универсальный. А вообще, - ОО и О2007 хранят документы в зазипованном XML, и этот зазипованный на десятки метров бывает. Как-то справляются.

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

Я вот тут тоже сделал файл на 25 метров (НДФЛ-2), он генерился у меня в XMLType в Oracle. Скорость select"ов из этого xml"я потрясающе никакая.


 
ZeroDivide ©   (2009-08-28 10:05) [13]


> десятки файлов в день некоторые сейчас много сотем МБ


Пара-тройка десятков файлов по сотне мегабайт за день (за 24 часа?)... да, за это время они вероятно распарсятся :) Не спорю :)))

Видимо, вы считаете xml оптимальным форматом для хранения сотен мегабайт да? :)))


 
Игорь Шевченко ©   (2009-08-28 10:15) [14]

ZeroDivide ©   (28.08.09 10:05) [13]


> Видимо, вы считаете xml оптимальным форматом для хранения
> сотен мегабайт да?


xml - оптимальный формат для обмена данными. Если кто-то этого не понимает, расширяет кругозор и не вылезает со своим ламерским мнением


 
ZeroDivide ©   (2009-08-28 10:22) [15]


> xml - оптимальный формат для обмена данными. Если кто-то
> этого не понимает, расширяет кругозор и не вылезает со своим
> ламерским мнением
>


Возьмите файл с реляционными данными в вашем xml (мегабайт на 100) и проверьте ссылочную целостность... Удачи.

XML - это болезнь. Но, я думаю, время лечит.


 
Игорь Шевченко ©   (2009-08-28 10:30) [16]

ZeroDivide ©   (28.08.09 10:22) [15]

Возьми любой текстовый файл и проверь в нем ссылочную целостность. Ты слово "обмен" не видишь/не читаешь/отказываешься воспринимать ?
Ссылочную целостность должен проверять тот, кто наилучшим образом умеет эту проверку делать, то есть база данных, а вовсе не файл с исходными данными.


 
Дмитрий С ©   (2009-08-28 10:33) [17]


> xml - оптимальный формат для обмена данными.

Лучше жевать, все-таки, да.


 
Медвежонок Пятачок ©   (2009-08-28 10:36) [18]

Лучше жевать, все-таки, да.

А какой оптимальный?


 
Дмитрий С ©   (2009-08-28 10:39) [19]


> А какой оптимальный?

Оптимальный для чего?
Не думаю, что оптимальнее передавать в XML формате, к примеру, дамп базы данных, оптимальнее SQL в большинстве случаев.


 
Медвежонок Пятачок ©   (2009-08-28 10:40) [20]

Речь про обмен данными.


 
Медвежонок Пятачок ©   (2009-08-28 10:42) [21]

Не думаю, что оптимальнее передавать в XML формате, к примеру, дамп базы данных, оптимальнее SQL в большинстве случаев.

Ну давай, пердавай.
У меня оракл на юниксе у тебя каше на винде.


 
Игорь Шевченко ©   (2009-08-28 10:49) [22]

Дмитрий С ©   (28.08.09 10:39) [19]


> Не думаю, что оптимальнее передавать в XML формате, к примеру,
>  дамп базы данных, оптимальнее SQL в большинстве случаев


Вот и не думай, а слушай, что умные и опытные говорят :)


 
TUser ©   (2009-08-28 11:01) [23]


> xml - оптимальный формат для обмена данными. Если кто-то
> этого не понимает, расширяет кругозор и не вылезает со своим
> ламерским мнением

картинку удобнее джпегом ))

Вообще, json, вроде позволяет примерно все тоже самое, и читабельнее и компактнее, а "неоптимален" исключительно в силу меньшей распространенности, имхо.


 
Дмитрий С ©   (2009-08-28 11:03) [24]


> Игорь Шевченко ©   (28.08.09 10:49) [22]

Очень-очень умные и очень-очень опытные :)) Гордыня губит, поди?


> Ну давай, пердавай.
> У меня оракл на юниксе у тебя каше на винде.

Тем более оптимальнее не использовать xml, известно для кого данные предназначаются. А точнее, если известно, что родной формат адресата не xml.


 
Медвежонок Пятачок ©   (2009-08-28 11:06) [25]

А точнее, если известно

Теоретик.
Допустим мне надо обмениваться с сотней корреспондентов.
Предлагаешь положить жизнь на поддержание в актуальном состоянии информации что там у них за сервер?
Ну допустим в понедельник я знаю, что у партнера mssql2008.
Во второник он переходит на бэтрив.

Какие мои действия?


 
Медвежонок Пятачок ©   (2009-08-28 11:09) [26]

А в среду уже я с каше переезжаю на fb25.
Сажусь за аутлук, и пишу всей сотне письма: Чуваки, со среды чтобы все дампы были для fb в ods не ниже десятки.

Пипец полет мысли.


 
ZeroDivide ©   (2009-08-28 11:10) [27]


> Игорь Шевченко ©   (28.08.09 10:30) [16]
>
> ZeroDivide ©   (28.08.09 10:22) [15]
>
> Возьми любой текстовый файл и проверь в нем ссылочную целостность.
>  Ты слово "обмен" не видишь/не читаешь/отказываешься воспринимать
> ?


Не вижу и не понимаю где ты его увидел до (ZeroDivide ©   (28.08.09 10:05) [13]). Речь шла о парсинге. Со скоростью парсинга у XML файлов большие проблемы. У тегов переменная длинна и чтобы парсер нашел начало следующего тега, нужно перелопатить содержание предыдущего. Ты не согласен? И вообще, подумай, стоит ли хамить, если ты хочешь нормальной дискуссии?


>Медвежонок Пятачок ©   (28.08.09 10:36) [18]
>Лучше жевать, все-таки, да.
>А какой оптимальный?


Оптимального нет.
Если пакет передаваемой информации небольшой, то да... удобнее xml. Если большой, то вся прелесть xml теряется. При небольшом размере xml удобно прочитать в вьювере, но вы же не станете читать стомегабайтынй высокоструктурированный xml. Его в редакторе читать тяжело, его по-любому нужно загружать в базу и смотреть с помощью интерфейса. Таким образом, при передаче больших xml - по большому счету, вылезают одни минусы, главный из которых скорость разбора этого xml.

Сейчас очень многие гос. конторы и не только переходят с dbf на xml, я не считаю это шибко разумным. К сожалению, ничего не придумано, для того, чтобы иметь компромис... какого-нить формата типа xml, но который бы имел, например таблицу описывающую смещения тегов в файле. Таким образом, чтобы было возможно и рыбку съесть и быстро парсить.


 
Медвежонок Пятачок ©   (2009-08-28 11:11) [28]

Если пакет передаваемой информации небольшой, то да... удобнее xml.

Да вот хрен там.
Будет просто дольше обрабатываться. Но обрабатываться будет.
Зато не надо будет поддерживать многочисленные процедуры импорта/экспорта в зоопарке форматов обмена.


 
Медвежонок Пятачок ©   (2009-08-28 11:13) [29]

и не только переходят с dbf

Рассказать про танцы с бубном вокруг этого самого дбф?


 
ZeroDivide ©   (2009-08-28 11:14) [30]


> Зато не надо будет поддерживать многочисленные процедуры
> импорта/экспорта в зоопарке форматов обмена.


К xml, как бы типа тоже xsd нужна.. и если схема поменялась - переписывать скорее всего придется, не отвертишься.


 
Игорь Шевченко ©   (2009-08-28 11:17) [31]

ZeroDivide ©   (28.08.09 11:10) [27]


> И вообще, подумай, стоит ли хамить, если ты хочешь нормальной
> дискуссии?


Ты тоже подумай, стоит ли делать безапелляционные заявления, если хочешь нормальной дискуссии.


> Речь шла о парсинге. Со скоростью парсинга у XML файлов
> большие проблемы. У тегов переменная длинна и чтобы парсер
> нашел начало следующего тега, нужно перелопатить содержание
> предыдущего


Парсинг он вообще последовательный, особенно при обмене, поэтому не вижу проблем с нуждой в поиске следующего тэга без просмотра тела предыдущего.

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


 
Медвежонок Пятачок ©   (2009-08-28 11:19) [32]

ну во первых xsd вовсе не обязателен.
во вторых переписываение переписыванию рознь.

если формат позиционный - меняем алгоритм.
если нет (dbf,mdb,xml) - то меняется в основном та чать которая отвечает за имена полей или xpath выражения (что в принципе можно вынести в настроечную часть)


 
Дмитрий С ©   (2009-08-28 11:25) [33]


> Медвежонок Пятачок ©

Это только эмоции и утрирование. Я про другое говорил. В вашем случае НЕ известен формат, который принимает клиент. Неужели можно быть таким ограниченным?


 
Медвежонок Пятачок ©   (2009-08-28 11:35) [34]

Это только эмоции и утрирование.

Городская муниципальная структура - интегратор.
Публикует данные о задолженности по лицевым счетам и принимает от городских банков платежи населения. Банков не пять и не десять.
Серверов банковских разных тоже.

Что дальше?


 
Дмитрий С ©   (2009-08-28 11:37) [35]

Вот еще пример из известных форматов.
Формат таблицы стилей CSS основан не на xml. Хотя и используется в Вебе, где все кругом "пропитано" XMLом.

XML является попыткой заново изобрести иерархические базы данных... в 1980-е года иерархические базы данных были вытеснены реляционными базами данных ©


 
Дмитрий С ©   (2009-08-28 11:38) [36]


> Медвежонок Пятачок ©

Ты еще раз приводишь пример того, о чем я тебе НЕ говорил.


 
Игорь Шевченко ©   (2009-08-28 11:42) [37]

Дмитрий С ©   (28.08.09 11:37) [35]


> Формат таблицы стилей CSS основан не на xml. Хотя и используется
> в Вебе, где все кругом "пропитано" XMLом.


В вебе все пропитано html вообще-то. Каковой появился несколько раньше как XML, так и CSS.

Я понимаю, что в силу ограниченности своих задач ты не сталкивался с необходимостью обеспечить удобный обмен данными между различными, порой заранее неизвестными, отправителями/получателями, но это же не оправдание.


 
Дмитрий С ©   (2009-08-28 11:57) [38]


> Игорь Шевченко ©   (28.08.09 11:42) [37]

XMLом таки.
Появился, возможно, и раньше, однако на замену html уже появился более строгий xhtml (который уже не html, но еще не xml:) ), а вот CSS не спешит преобразовываться.


>
> Я понимаю, что в силу ограниченности своих задач ты не сталкивался
> с необходимостью обеспечить удобный обмен данными между
> различными, порой заранее неизвестными, отправителями/получателями,
>  но это же не оправдание.

Ты же про меня знаешь всё, чтобы такое заявлять :)
Я уверен, что авторы XML, рассуждали именно так, как ты (я выделил жирным). И более того, я согласен с этим. Я же говорю, как ты правильно заметил, не про глобальные творения.


 
ZeroDivide ©   (2009-08-28 12:01) [39]


> Парсинг он вообще последовательный, особенно при обмене,
>  поэтому не вижу проблем с нуждой в поиске следующего тэга
> без просмотра тела предыдущего.


Ну :))) Заявление достойное мастера Delphi


> А что касается переменной длины - у всех ведущих баз данных
> давно переменная длина записи, из-за NULL значений, и ничего,
>  проблем с производительностью не испытывают.


Так в том то дело, что они выполняют только memcpy, реальная длинна варчаров в БД храниться, ее не нужно искать! А парсер xml выполняет кучу cmp, чтобы сначала понять, что копировать.


 
Медвежонок Пятачок ©   (2009-08-28 12:15) [40]

Ты еще раз приводишь пример того, о чем я тебе НЕ говорил.

Ну а ты приводишь примеры обмена дампами бд со своей младшей сестрой из пятого бэ, про которую все знаешь.



Страницы: 1 2 вся ветка

Текущий архив: 2009.10.25;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.023 c
2-1251020827
EXEcER
2009-08-23 13:47
2009.10.25
Рэндом в Label


15-1249839719
1324
2009-08-09 21:41
2009.10.25
Будущее DELPHI


2-1251978697
Nilman
2009-09-03 15:51
2009.10.25
поменять внешний вид TComboBox


2-1251798189
Franzy
2009-09-01 13:43
2009.10.25
Запуск расчета сразу после отрисовки формы


2-1251702004
wah
2009-08-31 11:00
2009.10.25
XP Style и Standard