"Однопальцевое" чтение XML для 8.2

Публикация № 84254

Обмен - Обмен через XML

155
Простенькое чтение XML файлов или строки произвольной структуры и неограниченной вложенности. Простая и управляемая формы.

UPDATE 0.4: Добавил возможность чтения xml из строки.

Т.к. "двухпальцевая" читалка Шепота устарела, да и написана неоптимально... Собственно вот. С рекурсией не стал заморачиваться, т.к. не нужно она тут...совсем не нужна. Код очень простой (половину из него занимают плюшки для отражения самого процесса). Индикатор тоже не стал прикручивать, т.к. он замедляет процесс.  Заменил его адаптивным выводом кол-ва прочитанных узлов - чем больше прочитано, тем больше шаг вывода (1,10,100,1000).

Выбираем файл, указываем число строк для чтения за раз (0 - весь файл), нажимаем кнопку. Повторное нажатие кнопки чтения прочитает следующий блок строк. После окончания файла выводится сообщение и чтение не будет происходить пока не выберут новый файл для чтения или не нажмут кнопку очистки дерева.

155

Скачать файлы

Наименование Файл Версия Размер
ЧтениеXML.epf
.epf 16,64Kb
19.02.13
1383
.epf 16,64Kb 1383 Скачать бесплатно

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. cool.vlad4 44 18.04.11 17:11 Сейчас в теме
:D Это где же такие симпатичные девушки работают?
2. YVolohov 733 18.04.11 17:48 Сейчас в теме
Фотка с девушкой заслуживает отдельного плюса :D
El_Loco; AllexSoft; vevd; bulpi; Student1C; adhocprog; +6 1 Ответить
14. Altair777 640 19.04.11 10:56 Сейчас в теме
(2)
YVolohov пишет:
Фотка с девушкой заслуживает отдельного плюса

А Вы Инфостарт с Контактом не перепутали?
Новиков; +1 Ответить
3. Ish_2 1028 18.04.11 18:13 Сейчас в теме
Что есть "Tits" на майке ? Напрашивается вольный перевод.
4. marsohod 121 18.04.11 20:02 Сейчас в теме
(3) "tits" - синица (англ.)
Почему-то сразу вспоминается народная поговорка: "Лучше синица (tits) в руках, чем ..." :D
solodovnikov.84; AllexSoft; Taktic; Alex_E; AlX0id; Spartan; Rustig; Ish_2; +8 Ответить
10. cool.vlad4 44 18.04.11 21:17 Сейчас в теме
(4) но в данном контексте перевод однозначный...и на этот раз гуглопереводне ошибается :D
ЗЫ Вот какое влияние оказывают женщины...сколько комментов и ни один про обработку...
wunderland; +1 Ответить
6. anig99 2674 18.04.11 20:21 Сейчас в теме
(5) Это даже на эротику не тянет... Какие-то проблемы с этим?
7. anig99 2674 18.04.11 20:23 Сейчас в теме
(5).... в догонку... O-Planet тогда Хью Хафнер Инфостарта (:
9. yku 319 18.04.11 21:15 Сейчас в теме
срочно менять на бородатого мужика!
wunderland; Rustig; +2 Ответить
11. Ish_2 1028 18.04.11 22:21 Сейчас в теме
Я тебя, Саша, решительно осуждаю.
Но ... девушка хорошая. Программистка 1с ?
12. anig99 2674 18.04.11 22:32 Сейчас в теме
Мечты...мечты... Я бы такую поучил 1с (: Скорее всего она web-программист...
13. Шёпот теней 1737 19.04.11 07:43 Сейчас в теме
... ну, ВЫ только посмотрите какие у (нас) программистов комплексы относительно крАсивых дЭвушЭк ...

... ужжжж ...


... открываем главную стрАницу ИС ... идЁм вниз ... смотрим "Лидеры продаж" ... и ... О!... боже... что МЫ тАмА видим-с ... ??? ...

и на первой и на второй очень даже и секси и порно ... ))) ...


... ВОТЧТОхотелосьПОДметить ...

...
16. Ish_2 1028 19.04.11 15:05 Сейчас в теме
Tits - на главную страницу !
17. 8c1.ru 152 19.04.11 15:25 Сейчас в теме
не читал, но фотку одобряю
18. Трактор 1180 19.04.11 15:33 Сейчас в теме
Сиськи обрамлены тэгами. Поэтому перевод однозначный и синицЫ тут ни при чём.
Кстати, наличие тэгов делает картинку уместной.
CratosX; BorisMor; bulpi; anig99; +4 Ответить
19. Andzhej 19.04.11 15:34 Сейчас в теме
За оформление публикации "+" АДНАЗНАЧНА...Жириновский :D
20. anig99 2674 19.04.11 16:10 Сейчас в теме
Весна, однако. Пока только один комментарий как-то связан с обработкой...
21. iov 364 19.04.11 16:30 Сейчас в теме
обработка заслуживает пристального внимания но девушка таки победила и внимание досталось ей :D
22. anig99 2674 19.04.11 17:53 Сейчас в теме
Мы попали на первую страницу!
23. Ish_2 1028 19.04.11 19:55 Сейчас в теме
(22) Этого мало.
Твоя обработка вполне претендует (скажу по секрету) на выбор экспертов.
Они тоже люди.
24. anig99 2674 19.04.11 20:12 Сейчас в теме
(23) надо будет цену за обработку установить (:
25. wolfsoft 2421 20.04.11 13:10 Сейчас в теме
Так и знал, что здесь обсуждают фото девушки! :D
26. CheBurator 3548 20.04.11 14:40 Сейчас в теме
Как модератор категорически советую аватар обработки сменить на более содержательный и отражающий суть разработки. Фото девушек и вольные аватары - помещайте в блог и в комменты.
27. anig99 2674 20.04.11 14:51 Сейчас в теме
(26) аватар отражает суть обработки - простое, общедоступное и наглядное чтение XML файлов.
Собственно здесь аватар не менее связан с сутью обработки.


З.Ы. Мысленно поверните девушку в профиль и сравните со скриншотом результатов обработки...
29. agat2008 20.04.11 17:46 Сейчас в теме
(27) кривые совпадают! фотка уместна! :D
28. bidond 43 20.04.11 17:41 Сейчас в теме
Весь день пялюсь в обработку :)
30. Altair777 640 20.04.11 18:47 Сейчас в теме
Согласен с Че. Скрыл все флудовые комментарии. Они оказались действительно почти ВСЕ :D
31. cool.vlad4 44 20.04.11 23:08 Сейчас в теме
(0) Классная обработка ;)
ЗЫ на всякий случай девушку продублировал http://forum.infostart.ru/forum1/topic39294/
33. sumixam 09.09.11 15:21 Сейчас в теме
34. Angry 11 29.09.11 19:04 Сейчас в теме
Спасибо, хороший пример для освоения ЧтенияXML
И для того что бы понять что 1С так ни фига и не сделали для удобной работы с XML.
35. anig99 2674 29.09.11 20:32 Сейчас в теме
(34) а что Вы считаете удобной работой?
36. Zoomby 29.09.11 23:24 Сейчас в теме
(35) Одна большая кнопка, которая все делает сама. :))
37. Angry 11 30.09.11 19:33 Сейчас в теме
(35) В данном случае удобно - это когда для работы с XML как с деревом, не приходится вставлять в код подобные куски кода с преобразованием текстового файла в дерево.
Ведь XML фактически хранит древовидную структуру.
38. anig99 2674 30.09.11 20:47 Сейчас в теме
(37) у меня вроде нет прямой работы с xml как с текстовым файлом... только методы xml. Хочется, чтобы 1с работала с xml также со своим деревом? Проблема в том, что такой подход потребует загружать весь xml файл сразу в память, а не читать его последовательно...
39. Angry 11 01.10.11 00:47 Сейчас в теме
(38) Вот в том и проблема получается, сначала читаем последовательно, строим дерево, а потом уже обрабатываем данные.

Я не говорил, что тут работа как с текстом, тут на уровень выше, работа с элементами (тэгами). Но XML по сути объектная модель данных, с такой моделью и хочется работать.
40. cool.vlad4 44 01.10.11 00:53 Сейчас в теме
(39) Вобще-то в 1С-ке используется как раз таки объектная модель - DOM - которая и выполняет всю грязную работу, ну и память жрет. Был бы sax парсер - вот тогда бы вы делали бы все ручками;-) Не, то, что вы имеете ввиду, это просто отсутствие синтаксического сахара, упрощающего написание кода, - который есть в других языках.
41. cool.vlad4 44 01.10.11 00:57 Сейчас в теме
Создаем док в C# XDocument doc = new XDocument(
new XElement("Document",
new XElement("Rekvizit",
new XAttribute("Date", 34124234),
new XAttribute("Name", "fgergwertge"),
и т.д.
IEnumerable<XElement> docs = from t in doc.Root.Elements("Document")
и тд.
42. anig99 2674 01.10.11 01:05 Сейчас в теме
(41) идеальных языков нет. к С есть претензии по массивам и работе с БД.
43. cool.vlad4 44 01.10.11 01:30 Сейчас в теме
(42) ну, это не совсем C - это C#, который вобщем-то разительно отличается от своего предка. Но у меня претензий не было;-) Чем старше становлюсь, тем больше убеждаюсь, что не в языке правда;-).
44. svs74 9 05.11.11 07:53 Сейчас в теме
Вполне приличная обработка, для моего конкретного случая подошла весьма, т.к. самому некогда было заморачиваться.
45. petrovaUL 30.11.11 13:49 Сейчас в теме
Для проверки файла ХМЛ пригодится
46. German 1008 16.03.12 22:05 Сейчас в теме
47. arjuna 20.05.12 09:39 Сейчас в теме
Еслиб ни девка, прошел бы мимо. Рефлекс блин. Она особо ии чем не отличается, таких сотни на любом мусорном сайте, но на этом конкуренции нету. Главное чтоб в тенденцию не перешло.
ABudnikov; baikalpharm; +2 Ответить
52. Артано 655 15.10.13 10:50 Сейчас в теме
48. Новенький_2209 17.09.12 15:31 Сейчас в теме
С изобретением велосипеда.
Новиков; +1 Ответить
49. xzorkiix 30 13.06.13 09:20 Сейчас в теме
Я бы вдул. и "Инфостарт одобрил".

Может кто поможет лень побороть? На входе xml-строка, на выходе - отформатированная строка xml.
50. kser87 1774 13.06.13 11:04 Сейчас в теме
Очень полезная штука! Спасибо!
51. LanaSN 12.09.13 14:12 Сейчас в теме
Спасибо, удобная и полезная вещь!
53. mehalyna 27.10.13 10:12 Сейчас в теме
Полезная штуковина. Спасибо автору!
54. dock 35 20.12.13 18:16 Сейчас в теме
работает! спасибо автору
55. Alfer 16.01.14 19:07 Сейчас в теме
теперь все через (ж) XML - а по сему полезная разработочка - тем более бесплатно - спасибо щедрый автор
56. anig99 2674 17.01.14 10:19 Сейчас в теме
(55) спасибо. не забудьте плюс поставить
57. vevd 27.02.14 18:45 Сейчас в теме
Спасибо! большое! очень-очень в тему !
59. anig99 2674 06.03.14 11:46 Сейчас в теме
(57)(58) а плюсики поставили?
58. bursanb 6 06.03.14 11:08 Сейчас в теме
нормально работает, спасибо автору.
60. bashirov.rs 19 18.09.14 07:18 Сейчас в теме
Обработка выдает ошибку
{Форма.Форма.Форма(129)}: Ошибка при вызове метода контекста (Прочитать)
Если ФайлXML.Прочитать() Тогда
по причине:
Ошибка разбора XML: - [36,16]
Фатальная ошибка:
Unescaped '<' not allowed in attributes values
SystemId: file://D:/1.XML.

Но после чего все выводит как надо. В чем может быть проблема? Не хотелось бы ковыряться в обработке.
61. anig99 2674 21.09.14 12:31 Сейчас в теме
(60) bashirov.rs, судя по всему проблема в самом файле
62. bashirov.rs 19 28.11.14 13:32 Сейчас в теме
(61) Вы правы. Спасибо разобрался)
63. AllexSoft 28.11.14 13:44 Сейчас в теме
зачем это поделие когда есть AKXMLEdit ? если бы редактирование XML тогда согласен, а так не понял зачем оно..
64. anig99 2674 30.11.14 11:43 Сейчас в теме
(63) AllexSoft, сама по себе обработка скорее всего не понадобится (кроме случаев, когда сидишь за компом пользователя, то быстрее запустить обработку из справочника, чем устанавливать сторонние программы). Во-вторых обработка содержить процедуры и функции, которые могут быть использованы в составе других обработок.
65. ice_nio 22.07.15 14:45 Сейчас в теме
Спасибо, помогла обработка!
(Все-таки интересно почему при отладке, выскакивает ошибка, а при чтении в режиме предприятия НЕТ!? )
66. anig99 2674 22.07.15 15:04 Сейчас в теме
67. ice_nio 23.07.15 12:17 Сейчас в теме
что - то там за границами массива, но именно при отладке, в предприятии работает как часы...
68. Serg O. 171 03.03.17 16:07 Сейчас в теме
хорошая "примочка"... спс

одну мааленькую добавочку еще приделать надо бы (я себе уже сделал) - кнопку "Развернуть"

при 1 нажатии - разворачивает всё... при 2-ом сворачивает

текст для кнопки - тоже "бесплатно"

Процедура РазвернутьНажатие(Элемент)

ЭлементыФормы.Развернуть.КнопкаПоУмолчанию = не ЭлементыФормы.Развернуть.КнопкаПоУмолчанию;
Свернуть = не ЭлементыФормы.Развернуть.КнопкаПоУмолчанию;

для каждого стр1 из ДеревоXML.Строки цикл
если Свернуть тогда
ЭлементыФормы.ДеревоXML.Свернуть(стр1);
Иначе // сразу всё дерево
ЭлементыФормы.ДеревоXML.Развернуть(стр1, Истина);
КонецЕсли;

Если Свернуть тогда
Для каждого стр2 из стр1.Строки цикл
ЭлементыФормы.ДеревоXML.Свернуть(стр2);
для каждого стр3 из стр2.Строки цикл
ЭлементыФормы.ДеревоXML.Свернуть(стр3);
для каждого стр4 из стр3.Строки цикл
ЭлементыФормы.ДеревоXML.Свернуть(стр4);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;

КонецЦикла;

КонецПроцедуры
69. Serg O. 171 03.03.17 16:11 Сейчас в теме
ошибка иногда вываливается...страшная... (см. файл)
если реальная ошибка в структуре XML есть - у меня недопустимые символы были...

надо в "попытку" обернуть внутри Функция ЕстьЧтоЧитать()
и предупреждать... ошибка в формате XML или что-то такое...
Прикрепленные файлы:
Оставьте свое сообщение