Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Вниз

Большой 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.05 c
2-1251902073
Merlin_88
2009-09-02 18:34
2009.10.25
Помогите с Классами


1-1220967073
stas
2008-09-09 17:31
2009.10.25
Работа с функциями GetWindowLong, SetWindowLong


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


2-1251360134
Student85236
2009-08-27 12:02
2009.10.25
idhttp1.Get зависает


8-1198474587
ImA
2007-12-24 08:36
2009.10.25
Поворот объекта по окружности





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский