Двухпальцевый reader_XML …

14.08.09

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

… стало много приходить XML-файлов с неизвестной структурой …

Вот и сообразил «читальщик» XML-файлов, который открывает, читает, и выводит в «дерево» структуру таких файлов также выводит статистику по «глубине» вложенности структуры данных.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
примеры для чтения
.1249681640 26,83Kb
309
309 Скачать (1 SM) Купить за 1 850 руб.
читальщик xml файлов
.1249678164 17,05Kb
166
166 Скачать (1 SM) Купить за 1 850 руб.
читальщик xml файлов ред.2
.1249885926 19,19Kb
155
155 Скачать (1 SM) Купить за 1 850 руб.
Читальщик XML файлов ред 3 (Если)
.1250233660 24,74Kb
61
61 Скачать (1 SM) Купить за 1 850 руб.
Читальщик XML файлов ред 4 (Цикл)
.1250233709 23,55Kb
88
88 Скачать (1 SM) Купить за 1 850 руб.
Читальщик XML файлов ред 5 (Рекурсия)
.1250247868 24,05Kb
310
310 Скачать (1 SM) Купить за 1 850 руб.

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

 Примечание. 

Если установленной глубины в 9 не хватает, добавьте код самостоятельно. В 99 случаев из 100 этого глубины чтения в 9 хватает с лихвой.


 Поиск по ИС:

  1. //infostart.ru/projects/1612/
  2. //infostart.ru/projects/2683/
  3. //infostart.ru/projects/2804/
  4. //infostart.ru/projects/1489/
  5. //infostart.ru/projects/1963/
  6. //infostart.ru/projects/1801/
  7. //infostart.ru/projects/3448/
  8. http://www.firstobject.com/   - спАсибо Ufimtsev и Ёпрст за "шустрого"

    ...
  9. ...


Что я вообще думаю про XML ... моё мнение совпадает с мнением, находящимся здесь: http://extrapro.ru/udxml.html

 

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

Желающих продолжить работу над данным проектом прошу присоединяться.

с Уважением Шёпот теней …

… вОт …

 

 Продолжение:

Новая версия обработки: "Читальщик XML-файлов ред.2" ...

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

 Что изменено/неИзменено:

  1. Увеличено количество чтения вложенности до 15 … (этого должно хватит на все разумные случаи жизни).
  2. Не стал делать рекурсию на чтение данных. Для простоты понимания процесса и при необходимости «вычленения» данных.
  3. Добавил возможность отдельного чтения узлов по двойному клику по нему. Если узел содержит вложенные данные, обработка их выводит в строке сообщения4. Улучшена работа прогресс бара за счет двойного чтения файла. Рекомендуется отключать в случае «больших» файлов.

 Примечание:

Данная обработка будет полезна для просмотра структуры файла XML до 10 Мб. Файлы объемом в 100 Мб, с отключенным прогресс баром, данная обработка прочитает и выведет за 3…5 минут (цифры условные т.к. зависят от многих факторов. приведены для того чтобы показать некие точки отсчета при работе с такими файлами).


Спасибо всем высказавшимся по данной обработке.

п.с.1.  Много нареканий по поводу не использования "рекурсии" в данной обработке. По разным причинам сделано намеренно. Тех, кого это смущает, прошу считать данную обработку методическим материалом.

 Продолжение 2:

 Сделаны две обработки:

  1. «Читальщик XMLфайлов ред 3» - использует оператор «Если – Тогда»
  2. «Читальщик XMLфайлов ред 4» - использует "Циклы".
  3. «Читальщик XMLфайлов ред 5» - использует "Рекурсию".

Новое у этих обработок:

  1. Форма «Настройка». Устанавливает величину читаемого размера файла. При его превышении отключается работа индикатора действия. Устанавливается цвет индикатора.
  2. Читает файл XML полностью – элементы, атрибуты, текст.

Спасибо: rasswet –  за интерес, замечания и комментарии к обработке.

См. также

SALE! 10%

Перенос данных 1C Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

55778 50200 руб.

04.08.2015    166743    334    278    

375

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.236.x) и БП 3.0 (3.0.164.x). Правила подходят для версии ПРОФ и КОРП.

35000 31500 руб.

15.12.2021    24172    171    51    

130

SALE! 15%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 руб.

12.06.2017    141813    799    297    

420

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.19.x).

35000 31500 руб.

23.07.2020    51536    228    70    

186

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    72193    182    150    

124

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

55778 50200 руб.

29.10.2018    56285    59    105    

61

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Платформа 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

15300 руб.

18.02.2016    187013    590    509    

527

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    171294    301    257    

378
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2712 08.08.09 02:43 Сейчас в теме
зачетно.. мне бы такую для 7.7... анализировать файлы обменов...
3. Арчибальд 2709 08.08.09 11:02 Сейчас в теме
2. Шёпот теней 1782 08.08.09 09:25 Сейчас в теме
... CheBurator - спасибо ЗАоценкуКомментарий ...

... CheBurator, СССР - дорожу вашим мнением ...

... вОООтВашШТ ...
4. artbear 1563 08.08.09 13:21 Сейчас в теме
Идея хорошая.

Но по коду/реализации есть комменты:
нафига 9 структур и т.п. ?? :(
Массивы, списки, таблицы еще никто не отменял
5. Шёпот теней 1782 08.08.09 16:49 Сейчас в теме
(4) ... ммм ...

... думаю, универсальность вЕщь избыточная и как всякая избыточность она должна быть опрАвдана ... а то получится как у 1С - нужно быть не только программистом но ещё и архивариусомФлажком ...

... дУмаю, что простота достигнется за счЁт рекурсии - здесь вот : http://infostart.ru/projects/3423/ - обращение к структуре с заранее неизвестным количеством вложений, у меня как раз решено именно образом рекурсии ... дУмаю здЕсь это не опрАвдано ...

... если файл xml состоит из документов с одинаковой структурой но варируемым количеством это одно а если много документов с разной структурой, для чего собственно и придумывался этот тип файлов, находится в файле - тогда это другой разговор ... я имею ввиду вопрос: КАК ?транспонировать таблицы превращённые в строку (xml - файл) обратно в человекоПривычный вид "шапки + двуМерной табличной частью" ...

... тем не менее Я с ОГРОМНЫМ удовольствием посмотрю на ВАШЕ решение ...

... вОтТакМНЕдумается ...
6. WKBAPKA 215 08.08.09 17:33 Сейчас в теме
Собстно xml это совокупность узлов и их атрибутов, т.е. в принципе нет необходимости устанавливать ограничение на количество уровней... имхо
7. Шёпот теней 1782 08.08.09 18:13 Сейчас в теме
(6) ... хм ... ужжж я и не знаю, что и скАзать ... по-моемому я не разу не видел файла с глубиной вложения больше 7, а про использование атрибутов и совсем не помню ...

... думаю, что хмл файлы, "мёртвые" файлы ... мода пройдЁт и они "пройдут" ...
... мы же не делаем один запрос к документу ..? ..! 1с всем рекомендует делать их два, один к "шапке", другой к "таблице" документа ... а использование хмл подразумевает делать один запрос не только к "шапка+таблица" но и к разным объектам ...

... плюс к тому же - связываясь с хмл - мы сначалА прикладываем усилия сделать информацию "однострочной" а потом прикладываем усилию к обратному процессу, процессу "сборки" ... и если использование html себя оправдывАет то xml - это ни кому не нужное усложение ...

... то, что ЭТО сложно - видно хотя бы по использованию любого редактора_ХМЛ ... размеры, быстрота чтения, простота использование, удобство просмотра - ВСЁ хромает ...

... теория была крАсивой - да прАктика НЕприняла ...

... вОтМоёМнение ...
8. Шёпот теней 1782 08.08.09 18:43 Сейчас в теме
... (7) ... хм ... рЕшил мАлость попрАвить ...

... все "эти" сложности с использованием хмл возможно опрАвдывают себя на очень "сложных" обменах данными - типа обмен БД через интернет ... хотя и ЭТО мне кАжется спОрным ... особенно когда вопрос касается поиска ошибки ...

п.с. хОтя возможно я УЖЕ просто стАрый ... или лЕнивый ... или тУпой ...

.. уффВОТвсё ...
9. WiseSnake 1521 09.08.09 03:33 Сейчас в теме
(7,8) Не соглашусь, сейчас все в этом формате, даже файлы офиса, обмены между современными приложениями (даже себрбанк научился юзать XML ))))). XML всего лишь попытка записать информацию в прозрачном и всем понятном формате.

>>а использование хмл подразумевает делать один запрос не только к "шапка+таблица" но и к разным объектам ...

Чтобы найти информацию в файле любого формата сначала его надо разобрать, а xml разобрать и "выдрать", например оттуда только шапку проще, чем откуда либо (если я понял о чем Вы) и с запросами это никак не связно...

P.S. А обработка могла бы пригодиться, но не люблю не универсальные вещи, по этому использовать в такой реализации не буду...
10. Шёпот теней 1782 09.08.09 08:55 Сейчас в теме
(9) ...
1абзац: ... вопрос мнений ... принято ! ..
... согласен с тем, что потихоньку всех приучат к этому формату ...
... по-поводу прозрачности, хм...? А, рАзве другие форматы - не прозрачны...?

2абзац: ... это была попытка провести аналогию... вОзможно не совсем удАчная ...

3абзац: ... чтоБЫ "выдрать" из файла информацию - не обходмо знАть его структуру ... сначало как миниму прочитать и посмотреть ...

4абзац: ... П.С. ... в таком случае чем де ВЫ пользуетесь для просмотра структуры ... ?

... сАмое простое и быстрое что мне попалось это наверное, см.(0), Поиск по ИС: 1. http://infostart.ru/projects/1612/ - но ОНА не в 1С ...


... вот ...
21. WiseSnake 1521 09.08.09 12:52 Сейчас в теме
(10) Именно этим http://infostart.ru/projects/1612/ я и пользуюсь... Огромный полюс этой разработки в том что она не читает(раскрывает) сразу весь xml, а только верхний уровень. Скорость открытия выше чем у всех протестированных мной и работает с большими файлами, короче есть почти все что нужно.

> ... по-поводу прозрачности, хм...? А, рАзве другие форматы - не прозрачны...?
Нет другие форматы ИМХО не прозрачны...
Возьмем самый наглядный пример это текстовый файл с разделителями. Попробуйте понять, что там храниться )))).
В XML мы можем передать ВСЮ необходимую информацию, такую как тип передаваемого значения и вообще саму структуру файла. Причем мы наглядно видим какое это значение (имя, тип и.т.) и даже визуально можем понять что откуда берется и как грузить. Отсюда и большой объем xml файлов, но они великолепно жмуться. Попробуйте передать это в любом другом формате и у Вас получиться XML файл ;)

P.S. До сих пор ИМХО существует проблема отсутствия нормальных инструментов с XML файлами (инструменты не оптимизированы), например SpyXML отличный наглядный инструмент, но слишком медленно работает. А программка из (10) отличная, но тоже подвисает на больших объемах
22. Шёпот теней 1782 09.08.09 13:21 Сейчас в теме
11. larisab 160 09.08.09 09:26 Сейчас в теме
> но ОНА не в 1С ...
Зато можно редактровать...
ВооОоот...
12. Шёпот теней 1782 09.08.09 09:43 Сейчас в теме
(11) ... ))) .... принЯто ... !

... вотВедь ...
14. Шёпот теней 1782 09.08.09 10:34 Сейчас в теме
(12) + ... данная обработка изнАчально не прЕдназначалась для рЕдактирования ... но вашЕ предложение вОзможно и осУществить в последующих вЕрсиях данной обработки, была бы НЕобходимость в практике ...

... ради истины: ...

... сдЕлал стандартную вЫгрузку базы из УТ в хмл ... максимальная "глубина" вложений = 9 ... )))
... поЭтому данной обработки дОлжно хвАтить на всЕ случаи жизни при работе в 1С УТ 8.х ... нуууу, можно для надЁжности увеличить глубину чтения до 12 ... чтобы устрАнить ВСЕ взможные эксцессы ...

... вОтОднАкО ...
13. larisab 160 09.08.09 10:28 Сейчас в теме
Ой, редактировать. Спросонья...
15. larisab 160 09.08.09 10:43 Сейчас в теме
Да я и не настаиваю, и не критикую, я пользуюсь http://infostart.ru/projects/1612/ именно потому, что можно редактировать... И задачи в этой области у меня - это xml переносов, иногда приходиться редактировать, больше в исследовательских целях... Но иногда бывает, что проще залезть в файл переноса через редактор и воткнуть там кое что, чем переписывать все правила...
hame1e00n; +1 Ответить
16. Шёпот теней 1782 09.08.09 11:19 Сейчас в теме
(15) ... проблема глобальности ... что я имею ввиду ... вЫгрузка из УТ получилась на 333 Мб ...

1. пробовал открыть данной обработкой - не хвАтает пАмяти ... (повторюсь, она и не была предназначена для такКкой "глобальности") ...
2. программой указанной в (0) под 1 - так она читает по мере поступления команды от пользоваеля то псевдо-открывает быстро а узла открывает по мере поступления ... выигрыша во времени не увидел по срАвнению с п.3...
3. открыл блокнотом - "прЕлестно" ... и вЕсь файл открЫл и рЕдактировать можно ...?

... вОт ...
17. WKBAPKA 215 09.08.09 12:06 Сейчас в теме
не могу не согласиться относительно xml, избыточная информация, но удобная структура для хранения произвольной информации. Я просто имел ввиду, что алгоритм разбора построенный на рекурсии может быть универсален, и количество уровней вложенности не играет никакого значения.
Например:

Процедура РазобратьУзел()
Если ЭтоУзел() Тогда
РазобратьУзел()
КонецЕсли;
КонецПроцедуры

РазобратьУзел()

Кстати, когда получаешь дерево значений, для обработки информации может быть удобным использовать обычную структуру. Получается тоже самое, что дерево значений, только похоже на динамические списки. Удобно когда нужно считать атрибуты узла.
19. Шёпот теней 1782 09.08.09 12:35 Сейчас в теме
(17) ... принято ... !

... обЪясниТЕ по поводу последнего абзацА ...? :

..." Кстати, когда получаешь дерево значений, для обработки информации может быть удобным использовать обычную структуру. Получается тоже самое, что дерево значений, только похоже на динамические списки. Удобно когда нужно считать атрибуты узла. " ...

... не сОвсем понял ...? ещЁ рАз если мОжно ...

... вот ...
29. WKBAPKA 215 09.08.09 17:52 Сейчас в теме
2(19): Как выглядить дерево значений:
Строка 1 <Узел>
Строка 2 <атрибут>
Строка 3 <атрибут>
Строка 11 <Узел>
Строка 12 <Узел>
когда знаешь что за формат, нужно получить атрибуты узла, не совсем удобно обходить в цикле строки дерева значений, проще представить это все в виде структуры (обычная запись):
Новый Структура;

Например, шапка документа:
Номер = 10
Дата = 12.02.2008
Контрагент (это новая структура)
ЕДРПОУ = 1000000
Наименование = "Пупкин"

Короче, в программном виде так:

Структура = ПреобразоватьДеревоВВидеСтруктуры()
Если Документ.МойДокумент.НайтиПоНомеру(Структура.Номер) Тогда
...
КонецЕсли;
Контаргент = ПолучитьКонтрагента(Структура.Контрагент.Едрпоу);

...вОт... :)
33. Шёпот теней 1782 09.08.09 18:05 Сейчас в теме
(29) ... принято ..! спАсибо за разЪяснения ... бУдУдУмУдУмать ... вОт ...
18. larisab 160 09.08.09 12:32 Сейчас в теме
))))) > открыл блокнотом - "прЕлестно" ... и вЕсь файл открЫл и рЕдактировать можно ...?
Да кто ж спорит!!! и не раз... но мне еще надо посмотреть тип выгруженного элемента данных и пр...

> вЫгрузка из УТ получилась на 333 Мб ...
ну да... согласна... торговля сама по себе всегда намного больше той же бухгалтерии...
Если речь идет о постоянных выгрузках... и то... смотря куда слать и смотря... многое что еще смотря...
Несмотря на то, что xml позиционируется как универсальный формат обмена данными, никто не исключает и другие форматы...
20. Шёпот теней 1782 09.08.09 12:38 Сейчас в теме
(18) ... принято ... !

... каждый пользуется ТЕМ оружием какое ОН любит ... нууу ... или имЕЕт ...
... сОгласен, "инструменты" могут бЫть разные ...

... вОт ...
25. larisab 160 09.08.09 13:43 Сейчас в теме
(20) > ... каждый пользуется ТЕМ оружием какое ОН любит ... нууу ... или имЕЕт ...
...нуууу.... не совсем так... от задачи зависит...
27. Шёпот теней 1782 09.08.09 14:01 Сейчас в теме
23. makfromkz 35 09.08.09 13:29 Сейчас в теме
24. Шёпот теней 1782 09.08.09 13:42 Сейчас в теме
(23) ... и вЫсказываемся ... )))

... ищЕм если не Истину то хотя бы прАвду ...

.. вОт ..
26. larisab 160 09.08.09 13:46 Сейчас в теме
(23) а расскажи душещипательную историю про 300 форму и ее 7 и 8 приложение:)))) мне, боюсь, россиянам не объяснить... набор слов не тот, понимаешь каких...
28. makfromkz 35 09.08.09 15:57 Сейчас в теме
ыыыы, как кто-то написал "ужас летящий на крыльях СОНО" ??
дык вряд ли россиянам сможем объяснить))))
30. WKBAPKA 215 09.08.09 17:53 Сейчас в теме
Помоему так удобнее ;)
31. WKBAPKA 215 09.08.09 17:54 Сейчас в теме
мне один друг говорил что есть еще один формат типа xml но более оптимизирован, т.е. в нем нет обязательных закрывающих тэгов.
32. WKBAPKA 215 09.08.09 17:55 Сейчас в теме
тока не помню его название
34. СергейКа 670 09.08.09 20:54 Сейчас в теме
Мне нравится алгоритм чтения реализованный здесь http://infostart.ru/projects/3448/ именно своей унивесальностью. Тем более что легко и преобразовать обратно, для сохранения изменений. Есть недостаток как раз в использовании при большом xml...
Помнится, мне приходилось специально писать обработку для анализа обменников, ибо они были более 500 мб, и ни один редактор, показывающий структуры их не открывал на персоналке, только на сервере...
35. Шёпот теней 1782 09.08.09 21:09 Сейчас в теме
(34) ... принЯто СергейКа .. ознАкомлюсь ... спАсибо ...

... читАть большие по размеру файлы, соГласен прОблема, дАже простое чтЕние текстового файла рАзмером более 300 Мб составляет от 2 минут ... а уж с выводом информации и вАААще рАзА в 3...4...5 дОльше ...

... видимо нужны какие-то порции данных ... но если нужны дАнные с "низу" бУдет читать почти тАкже долго как и вЕсь файл ...

... дУмаю, что тАкие загрузки/выгрузки с файлом обмена "весом" больше 100 мб вАААще не нужны ... лУчше частичные загрузки/выгрузки ...

... вОт ...
36. WKBAPKA 215 09.08.09 23:53 Сейчас в теме
Шёпот у тебя что, клавиатура глючит?
38. Шёпот теней 1782 10.08.09 00:06 Сейчас в теме
(36) ... нЕт ... (37) ... )))

... это свойствЕнный мне спОсоб пЕрЕдАчи эмоций чЕрез писЬмо ... зАмена сОвременному повседневному мАту ...

... нУууу, или "вЫгибалка" моЙ персоны ... одним слОвом начилось всЁ как протест - АтеперьВОТпривык ...

... вотТАКАЯистория ...
39. artbear 1563 10.08.09 08:46 Сейчас в теме
За обработку +
за неуважение к читателям -
Жаль :(
40. Шёпот теней 1782 10.08.09 09:04 Сейчас в теме
... неДОРОГОЙ "artbear" - чЕловека нЕльзя обидЕть пока ОН сАм не ОБИДА-ется ...

... кАк скАжешь НЕдорогой ... вИдимо ТЫ ИСТИНА в последней инстанции ...

... если ТЫ тАААк бОрешься ЗАуважениеКсебе будь тАк увАжителен коМНЕ НЕзаходи больше на мои ветки ...

... бЕз уважения к "тебе" ... НЕтвой Шёпот теней ...

... неВОТ ...
41. Шёпот теней 1782 10.08.09 10:30 Сейчас в теме
Новая версия обработки.

Решил несколько изменить обработку после обсуждения в ветке и советов.

Что изменено/неИзменено:

1. Увеличено количество чтения вложенности до 15 … (этого должно хватит на все разумные случаи жизни).
2. Не стал делать рекурсию на чтение данных. Для простоты понимания процесса и при необходимости «вычленения» данных.
3. Добавил возможность отдельного чтения узлов по двойному клику по нему. Если узел содержит вложенные данные, обработка их выводит в строке сообщения.
4. Улучшена работа прогресс бара за счет двойного чтения файла. Рекомендуется отключать в случае «больших» файлов.

Примечание: данная обработка будет полезна для просмотра структуры файла ХМЛ до 10 Мб. Файлы объемом в 100 Мб, с отключенным прогресс баром, данная обработка прочитает и выведет за 3…5 минут.

Спасибо всем высказавшимся, на данном этапе разработки по данной обработке.

... вОт ...
42. artbear 1563 10.08.09 16:16 Сейчас в теме
(4+) За обработку все-таки ставлю минус - за 15 одинаковых структур, кучу одинаковых кусков кода по 15 штук каждый :(

ЗЫ раньше было только 9 :)
видимо, кроме копи-паста ничего не знаешь.
Evg-Lylyk; venger; +2 Ответить
43. Шёпот теней 1782 10.08.09 16:29 Сейчас в теме
(42) ... нЭт ... дОрОгОй ... нЭчЭвО бОльшЕ НЭзнаю ...

... НЭспАсибоИнаЭтом ...
44. СергейКа 670 10.08.09 17:39 Сейчас в теме
> ... неДОРОГОЙ "artbear" - чЕловека нЕльзя обидЕть пока ОН сАм не ОБИДА-ется ...
"На обиженных воду возят" - русская поговорка.
Увы, нетерпимость является большим минусом.
Явная неадекватность поведения в ответ на вполне нормальную критику.
Уговорил. Дабы не быть посланным, сам принимаю решение не заходить больше на Ваши ветки. Хотя форумные и раньше читать не мог ( http://infostart.ru/forum/messages/forum17/topic10580/message85779/#message85779 ).
artbear; Evg-Lylyk; venger; +3 Ответить
46. Шёпот теней 1782 11.08.09 05:52 Сейчас в теме
(44) ... СергейКа ... жАль, что вы приняли такое решение ... мне жАль ...

п.с. .... "другие" - ВОН сколько НЕпросишь - сАми лЕзут ... если не с "комментариями" то хОть с "мИнусками" ...


(45) ... ну, что ВЫ зацепились за эту Рекурсию ...

...ммм ... воспринимайте эту обрАботку как методический материал ... лично у менЯ интЕрес к этой обрАботке лежит соврешенно НЕ в плоскости рЕкурсии ...



... мои вЫводы:
1. ... занимаясь пОискОм по ИС и не тОлько - обнАружил, что почти нЕт никаких "читальщиков" и уж тЕм более редАкторов по xml в 1С... по крАне мере я не нАшёл ... вОт и рЕшил привлЕчь внимАние к этой проблЕме ...

2. ... про xml только ВСЕ говорят но мАло кто с ним рАботает ... всЕ говорят какой ОН крутой и удОбный а обработок нЕт ...

3. ... всЕм тОварищам ... кто прЕдлагает усложнить кОд, прЕдалагаю написАть свом вЕрсии xml-редакторов ... и я с уДовольствием по-учусь у них и уму и рАзуму (бЕз тени ирОнии) ...


... вОтВобщем ...
47. coder1cv8 3477 11.08.09 08:08 Сейчас в теме
(46) Да ты всех уже достал по-моему! Это читать не возможно, сплошные мычания какие-то! Не говоря уже о постоянной ругани в камментах, в которой ты сам на 99% виноват. Не приятно видеть такое на первой странице.
48. Шёпот теней 1782 11.08.09 08:41 Сейчас в теме
(47) ... ммм ... что ещЁ могу скАзать ... вот ...
49. Ish_2 1113 11.08.09 09:28 Сейчас в теме
(48) Шепот, всё-таки лучше воздерживаться от личных выпадов .
Зачем это : неДОРОГОЙ "artbear" ?
Замечания были вполне конструктивными.
50. Шёпот теней 1782 11.08.09 10:04 Сейчас в теме
... (49) ... ТЫ, меня удивляешь по поводу "личных" вЫпадов ...

... я огрАничил своЁ местоПребывание на ИС только "своими" вЕтками ...
... Я, своего мения никому НЕнавязываю ...
... по поводу "рекурсии" обЪснил - дрУгая задача, не в причЁсанности кода ...

п.с.1. ... файлы ХМЛ плохо поддАются визуализации, нЕт или очЕнь мало "читальщиков" и "редакторов" а если есть то до жути "громоздкие" да и неУдобные ...

п.с.2. ... плохая "визУализация" из-за плохой возможности их стрктурировАть и поэтому с ними трУдно рАботать ...

п.с.3. ... прерасная возможность передать рАзнородные данные - огорчается дополнительным "прАвилами" стандартами обЪменА ... в итоге: сложность выросла а удобство и нАглядность пропала ... и если ошибки в получении дАнных пропАли то они пОявились при рАботе с самими данными ...

п.с.4. ... то, что программисткая брАтия реагирует на "код", вместо того, чтоБЫ завалить ссЫлками на обрАботки с чтением_редактированием_ХМЛ - кОсвенно поДДтверждает даннУю мЫсль ...


... вОт ...
51. Шёпот теней 1782 11.08.09 10:06 Сейчас в теме
(49) ... вОООбще-то ... спАсибо хотел тебе скАзать ... вОт ...
52. Evg-Lylyk 4853 11.08.09 11:39 Сейчас в теме
(46) "...ммм ... воспринимайте эту обрАботку как методический материал ... лично у менЯ интЕрес к этой обрАботке лежит соврешенно НЕ в плоскости рЕкурсии" Ну должна быть какая нибудь уникальность и даже хорошо что она будет заключатся в простоте... только смотрите у вас "плохому" научатся ;)
(50) "что программисткая брАтия реагирует на "код"" контингент такой.
Нашел у себя самый большой XML Crysis Save 4,5 МБ в нем 12 уровней, а вы говорите 9 достаточно.
Посмотрел внимательно реализацию и заметил несколько моментов почему медленно:
1. Файл считывается два раза.
2. Индикация процесса съедает все время (желательно делать ее раз в секунду)
3. Нет смысла в отдельном ТЗ статистики ее можно отразить и в построенном дереве XML
4. Очень неоптимальный код чтения "много если" (для скорости и понятности нужна рекурсия)
Кстати на тестовом файле 60 сек. O_o убрал индикацию 38 сек.(50) "что программисткая брАтия реагирует на "код"" контингент такой.
Нашел у себя самый большой XML Crysis Save 4,5 МБ в нем 12 уровней, а вы говорите 9 достаточно.
Посмотрел внимательно реализацию и заметил несколько моментов почему медленно:
1. Файл считывается два раза.
2. Индикация процесса съедает все время (желательно делать ее раз в секунду)
3. Нет смысла в отдельном ТЗ статистики ее можно отразить и в построенном дереве XML
4. Очень неоптимальный код чтения "много если" (для скорости и понятности нужна рекурсия)
Кстати на тестовом файле 60 сек. O_o убрал индикацию 38 сек.

"Я, своего мения никому НЕнавязываю" никто не навязывает вам свое мнение. Просто высказываются :)
Шёпот теней; +1 Ответить
53. Шёпот теней 1782 11.08.09 11:56 Сейчас в теме
(52) ... принято ...

по поводу:
1. "два рАза" : для лучшей работы прогрессБара ...
2. пишу же ... для быстроты - нужно отключать прогрЕссБар ...
3. можно и отразить ... у кАждого свои вкУсы ...
4. нУУУУ ... скОлько мОжно пИсать про "рекурсии" ... уже вЕзде нАписал ... и в "описании" и в "комментах" ... сдЕлано спЕциально ...!
5. "к стати" : ... сОгласен ... см.п . 2 (здесь) ...

... вот ...
Evg-Lylyk; +1 Ответить
54. Шёпот теней 1782 11.08.09 12:04 Сейчас в теме
(52) , (53) + ... вОООбще-то ... спАсибо ... вОт ...

Evg-Lylyk; +1 Ответить
55. Шёпот теней 1782 11.08.09 12:41 Сейчас в теме
... Evg-Lylyk ... ))) если тЫ с "+" в комментариях по поводу меня не ошибся ... ? ...

)))

... тУт .. вООбще-то ... идЁт обрАтный процЕсс ...! ...


... хм ... поЙду и вАм плЮсану ... см. (52) ... )))

... Вот! ...
45. Evg-Lylyk 4853 10.08.09 23:39 Сейчас в теме
код жесть :)
как же так? :( нашлось время сделать "О программе"...
и мелкие красивости... вроде...

"Если ДанныеСтроки.Уровень = 1 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоЖелтый;
КонецЕсли;
Если ДанныеСтроки.Уровень = 2 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоЗолотистый;
КонецЕсли;
Если ДанныеСтроки.Уровень = 3 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.Бежевый;
КонецЕсли;
Если ДанныеСтроки.Уровень = 4 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.ДымчатоБелый;
КонецЕсли;"
(используйте ИначеЕсли покороче будет да и попонятней),
а на нормальный код с рекурсией не хватило времени :(

Интересная ссылочка http://extrapro.ru/udxml.html спасибо

На счет более компактного и быстрого XML есть FastInfoSet, но я забросил его на первых же граблях так как замена ЧтениеXML на ЧтениеFastInfoset почему то не работала (читал что на каких то платформах с ним ошибки).

56. Ufimtsev 56 11.08.09 16:29 Сейчас в теме
для редактирования XML пользуюсь 'First object XML editor'.
- не требует установки, маленькая, бесплатная, быстрая, редактирует любые по размерам XML файлы.
tormozit; CratosX; +2 Ответить
57. Шёпот теней 1782 11.08.09 17:11 Сейчас в теме
(56) ... спАсибо ...

...а ссылку ..?

... вот ...
60. Шёпот теней 1782 11.08.09 19:36 Сейчас в теме
(58) ... спАсибо ... ох, ах, нУууу и шУстрый ... )))
59. tango 546 11.08.09 18:52 Сейчас в теме
"шепот не ваших теней"
61. Шёпот теней 1782 11.08.09 19:37 Сейчас в теме
(59) ... привЕтствую тЕбя, мАэстро "tango" ... )))
62. Шёпот теней 1782 11.08.09 19:40 Сейчас в теме
спАсибо Ufimtsev и Ёпрст за "шустрого" - http://www.firstobject.com/ ...

.. вОт ..
63. ShurikOff 8 12.08.09 07:07 Сейчас в теме
64. rasswet 82 13.08.09 11:46 Сейчас в теме
открываю файл
<?xml version="1.0" encoding="windows-1251" ?>
- <Файл xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ИдФайл="NO_PRIB_77457745_7731240579774501001_20080711_2DB855­A1-7148-4F98-8F23-DBCE62942236" ВерсПрог="1С:ПРЕДПРИЯТИЕ7.7 08Q2002 7.70.500" ВерсФорм="5.01">
- <Документ КНД="1151006" ДатаДок="11.07.2008" Период="31" ОтчетГод="2008" КодНО="7745" НомКорр="0" ПоМесту="214">
- <СвНП ОКВЭД="28.11.;" Тлф="730-54-54">
<НПЮЛ НаимОрг="ООО "БЛАЛЛАЛА"" ИННЮЛ="77888" КПП="75555001" />
и т.д.
в столбце значение-пусто. отчего так?
это отчет из 7ки выгружен

65. СССР 13.08.09 12:00 Сейчас в теме
(64) Вот ты блин своим ответ форум растянул - главная страница вытянулась до не могу.
66. Шёпот теней 1782 13.08.09 12:25 Сейчас в теме
(64) ... изИните за крамольную мЫсль ... а ползунком двИгали ... вОт ...
67. Шёпот теней 1782 13.08.09 12:32 Сейчас в теме
(66) ... по поводу (64) ... ой, что-то не то нАписал, нАверное ... ))) винОват ...

... знАчит:

... "Если файлXML.ТипУзла = ТипУзлаXML.Текст Тогда "...

... значит строки этого ХМЛ не содержат "Текст" ...

всего существУет 3 типа:
1. ТипУзлаXML.НачалоЭлемента
2. ТипУзлаXML.Текст
3. ТипУзлаXML.КонецЭлемента

... вОт ...
68. rasswet 82 13.08.09 13:07 Сейчас в теме
(67) а что содержат тогда? видно же что там текст.
(65) сорри! у меня в мозилле всё нормально...
70. rasswet 82 13.08.09 13:19 Сейчас в теме
http://www.onlinedisk.ru/file/197043/ выложил сам файл, чтобы не искали. посмотрите, если интересно.
(66) двигал ползунком.
71. Шёпот теней 1782 13.08.09 13:52 Сейчас в теме
(70) ... пОлучил ... пОсмотрю ... дОложусь ... ))) ... вОт ..
72. Шёпот теней 1782 13.08.09 14:14 Сейчас в теме
(70) ... если, нАпример, строку:

<НПЮЛ НаимОрг="кккккк;" ИННЮЛ="55555" КПП="666666"/>

пЕрЕписать как:

<НПЮЛ> НаимОрг="кккккк;" ИННЮЛ="55555" КПП="666666"</НПЮЛ>

... то рЕдакторы читают её как текст ...

... вИдимо формАт такой ... и началоЭлемента и текстЭлемента и конецЭлемента ВСЁ в одном теге ... стАндарты бЫвают рАзные ... )))

... это всЁ что мОгу скАзАть на уровне своих знАний по ХМЛ ... (((

... вОт ...

п.с. узнАете - не забудЬте рАссказать ... бУдем ждать ...
73. rasswet 82 13.08.09 14:18 Сейчас в теме
(72) точно не узнаю)
так выгружает стандартный механизм выгрузки 7ки. и как ни странно всё втягивается в Такском нормально. ну да ладно. Пасиб за обработку)
74. Шёпот теней 1782 13.08.09 14:37 Сейчас в теме
(73) ... вАм спасибо .. ! удАчи ... вОт ..
75. Шёпот теней 1782 13.08.09 15:05 Сейчас в теме
(70) .. все сОООбразил ...

в строке: <НПЮЛ НаимОрг="кккккк;" ИННЮЛ="55555" КПП="666666"/>
1. НаимОрг="кккккк;"
2. ИННЮЛ="55555"
3. КПП="666666"

1-3 ... это Атрибуты ...

... их чтение возможно в моей обработке если в процедуре:
"кнОткрыть_чтениеХМЛфайла" перенести код:

Пока файлXML.ПрочитатьАтрибут() Цикл
____Атрибут = файлXML.Значение;
____Сообщить("атрибут:" + файлXML.Имя + "=" + файлXML.Значение);
КонецЦикла;

и поставить его после строк:
Если файлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

Имя = файлXML.Имя;
глубина = файлXML.КонтекстПространствИмен.Глубина;

.... ВОТ сЮДА вставить код...


... естествЕЕно сделаю и испрАвлю обрАботку для вАрианта с "Атрибутами" ...

... спАсибо вАм ... ВОТ ... )))


76. rasswet 82 13.08.09 15:19 Сейчас в теме
(75) а...ну вот будет более универсальное решение) для чтения и таких файлов! респект! как сделаете-отпишитесь-я скачаю!
77. Шёпот теней 1782 13.08.09 16:11 Сейчас в теме
(76) ... Спасибо ! ... отпишУсь Обязательно ... )))
69. rasswet 82 13.08.09 13:13 Сейчас в теме
аналогично. выгрузка из 7ки-налог на имущество. если есть 7ка попробуйте из ней посмотреть какой-нить файлик отчетности, который выгружается
78. Шёпот теней 1782 14.08.09 11:10 Сейчас в теме
Сделаны две обработки:
1.«Читальщик XML файлов ред 3» - использует переменные и используется оператор «Если – Тогда»
2.«Читальщик XML файлов ред 4» использует массив и Циклы.

Новое у этих обработок:
1.Форма «Настройка». Устанавливает величину читаемого размера файла. При его превышении отключается работа индикатора действия. Устанавливается цвет индикатора.
2.Читает файл ХМЛ полностью – элементы, атрибуты, текст.

Спасибо: rasswet – за интерес, замечания и комментарии к обработке.

... ВОТ ...
79. Шёпот теней 1782 14.08.09 15:08 Сейчас в теме
(78) дополнение в обработках:

3.«Читальщик XML файлов ред 5» - использует Рекурсию.

... вОт ...
80. WKBAPKA 215 14.08.09 22:12 Сейчас в теме
не смотрел обработку аффтара, ничего против стиля писания афтара не имею против, мне пофиг, однако, хочу заметить, что разбор XML файла решается обычной рекурсией без всяких условий. При этом легко можчно считывать файлы разными порциями, как угодно, формируя обычное дерево. При этом атрибуты и значения атрибутов можно раскладывать на токены, после чего, для окончательной обработки получать структуру, вроде динамических списков. Код будет весьма коротким и достаточно понятным. Кому интересно, могу выложить свой разбор, только не XML файла, а похожей структуры тоже состоящей из узлов и их атрибутов. Причем количество уровней вложености узлов мне по барабану. Лишь бы памяти хватило.
Относительно кода, нельзя говорить, что я пишу как хочу. Считается плохим тоном в программирования в языках высокорого уровня использовать безусловные переходы :) Имхо мое мнение.
81. Шёпот теней 1782 14.08.09 23:36 Сейчас в теме
(80) ...
1. ... что тАкое "хороший" или "плохой" тон прогрАммирования я НЕзнаю - мне "пофиг" ...
2. ... если ВЫложите своЮ версию - лИчно мне будет интерсно и с интЕресом ознАкомлюсь с вАшим мЕтодами и спОсобами ...


П.С.

... замеры по данной обработки при считывАнии одного и того же файла:
1. версия_3 = 31 сек. (открывет 15 уровней - решение через Если)
2. версия_4 = 34 сек. (открывет любое кол. уровней - решение через Цикл)
3. версия_5 = 28 сек. (открывет любое кол. уровней - решение через Рекурсия)

... разница между спОсобами чтения в 10% ... но прОстота нАписания обрАтнАя ...

.. отсюДА вЫвод: каЖдому "гОршку" своЁ прЕдназначение ...

... вОтВОООбЩЕм ...
82. WKBAPKA 215 14.08.09 23:48 Сейчас в теме
ну ну.версия 2 через цикл используются безусловные переходы?
83. Шёпот теней 1782 15.08.09 11:22 Сейчас в теме
(82) ... нУууу ... нИкто и нЕспорит ...

оценки любОй прОгрАммы:
1. вЫполнять ТО, что нУжно пОльзователю
2. нАписАна она должна быть как можно бЫстрее
3. вЫполнять зАдуманное как мОжно быстрее
4. пОдпрАвляться, при нЕобходимости как мОжно бЫстрее
5. после 1-4 можно переходить от внЕшнего крАсивого вида к внУтрЕЕннему совершенству

... ВоТ ... ждЁм вАшу обрАботку ...
84. Шёпот теней 1782 17.08.09 10:41 Сейчас в теме
(82) ... БЕЗусловный переход - Перейти (Goto), а Если (If) - УСЛОВие-ный переход ...
85. WKBAPKA 215 17.08.09 10:51 Сейчас в теме
2. версия_4 = 34 сек. (открывет любое кол. уровней - решение через Цикл)

подскажите, как через цикл реализовать "открывает любое кол. уровней"?
86. WKBAPKA 215 17.08.09 10:52 Сейчас в теме
я имею ввиду не используя goto
87. WKBAPKA 215 17.08.09 10:54 Сейчас в теме
да и вообще как в циклах можно делать неограниченное количество уровней, поделитесь технологией
89. Ish_2 1113 17.08.09 12:55 Сейчас в теме
(87) Как известно, алгоритм любой сложности может быть реализован с помощью операторов цикла и альтернативы(выбора). Цитата недословная (по памяти).
Если речь о рекурсии неопределенной глубины, то реализацию с помощью цикла while и стека можно найти где -то в google по строке "Рекурсия или цикл".
Да и здесь на ИС уже эта тема обсуждалась.
90. Шёпот теней 1782 17.08.09 22:31 Сейчас в теме
(89) ... ммм ... по моей памяти: ... " ... алгоритм любой сложности может быть реализован с помощью операторов ..." : ... кАк ни стрАннО при помощи двух операторов: "Метка" и "Если-Тогда" ...
88. Шёпот теней 1782 17.08.09 11:58 Сейчас в теме
... понятно, принято, думаю, что рАзговариваем МЫ с вАми на разных языках ...

... удачи ...

... вОт ...
91. Ish_2 1113 17.08.09 23:06 Сейчас в теме
Нет , Шепот , я соврал в формулировке меньше чем ты.
Одна из формулировок теоремы Дейкстра :

Алгоритм любой сложности можно реализовать, используя только цикл while и альтернативу.

Или другая формулировка :
Теорема Дейкстра. Алгоритм любой сложности можно реализовать, используя только три конструкции: следования (линейные), выбора (ветвления) и повторения (циклические).

Посмотри в google "Теорема Дейкстра".

Люди говорят , что Дейкстра как раз объявил войну меткам.
Но судя по-всему он под "меткой" предполагал нечто другое , чем ты.