IE2017

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

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

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

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

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

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

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

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

См. также

Комментарии
1. Ийон Тихий (cool.vlad4) 41 18.04.11 17:11 Сейчас в теме
:D Это где же такие симпатичные девушки работают?
2. Ярослав Волохов (YVolohov) 705 18.04.11 17:48 Сейчас в теме
Фотка с девушкой заслуживает отдельного плюса :D
El_Loco; AllexSoft; vevd; bulpi; Student1C; adhocprog; +6 1 Ответить
3. Игорь Исхаков (Ish_2) 981 18.04.11 18:13 Сейчас в теме
Что есть "Tits" на майке ? Напрашивается вольный перевод.
4. Вячеслав Кадацкий (marsohod) 120 18.04.11 20:02 Сейчас в теме
(3) "tits" - синица (англ.)
Почему-то сразу вспоминается народная поговорка: "Лучше синица (tits) в руках, чем ..." :D
solodovnikov.84; AllexSoft; Taktic; Alex_E; AlX0id; Spartan; Rustig; Ish_2; +8 Ответить 1
5. Eugeneer (Eugeneer) 18.04.11 20:11 Сейчас в теме
Ваще прикольно но картинка не уместна. сайт в порностудию превратится.
tano23; Vladal; CratosX; Rustig; +4 1 Ответить 2
6. Александр Медведев (anig99) 2544 18.04.11 20:21 Сейчас в теме
(5) Это даже на эротику не тянет... Какие-то проблемы с этим?
7. Александр Медведев (anig99) 2544 18.04.11 20:23 Сейчас в теме
(5).... в догонку... O-Planet тогда Хью Хафнер Инфостарта (:
8. Eugeneer (Eugeneer) 18.04.11 20:25 Сейчас в теме
(6) на эротику как раз таки тянет. соски из майки выпирают, ща каждый второй будет таких девок заводить на публикациях и во что оно все превратится)
9. Александр Гладких (yku) 263 18.04.11 21:15 Сейчас в теме
срочно менять на бородатого мужика!
wunderland; Rustig; +2 Ответить
10. Ийон Тихий (cool.vlad4) 41 18.04.11 21:17 Сейчас в теме
(4) но в данном контексте перевод однозначный...и на этот раз гуглопереводне ошибается :D
ЗЫ Вот какое влияние оказывают женщины...сколько комментов и ни один про обработку...
wunderland; +1 Ответить
11. Игорь Исхаков (Ish_2) 981 18.04.11 22:21 Сейчас в теме
Я тебя, Саша, решительно осуждаю.
Но ... девушка хорошая. Программистка 1с ?
12. Александр Медведев (anig99) 2544 18.04.11 22:32 Сейчас в теме
Мечты...мечты... Я бы такую поучил 1с (: Скорее всего она web-программист...
13. Александр Шишкин (Шёпот теней) 1696 19.04.11 07:43 Сейчас в теме
... ну, ВЫ только посмотрите какие у (нас) программистов комплексы относительно крАсивых дЭвушЭк ...

... ужжжж ...


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

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


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

...
14. Альтаир (Altair777) 638 19.04.11 10:56 Сейчас в теме
(2)
YVolohov пишет:
Фотка с девушкой заслуживает отдельного плюса

А Вы Инфостарт с Контактом не перепутали?
Новиков; +1 Ответить
15. Ийон Тихий (cool.vlad4) 41 19.04.11 10:56 Сейчас в теме
16. Игорь Исхаков (Ish_2) 981 19.04.11 15:05 Сейчас в теме
Tits - на главную страницу !
17. 1c8@8c1.ru (8c1.ru) 151 19.04.11 15:25 Сейчас в теме
не читал, но фотку одобряю
18. Трактор Трактор (Трактор) 1138 19.04.11 15:33 Сейчас в теме
Сиськи обрамлены тэгами. Поэтому перевод однозначный и синицЫ тут ни при чём.
Кстати, наличие тэгов делает картинку уместной.
CratosX; BorisMor; bulpi; anig99; +4 Ответить
19. Андрей К. (Andzhej) 19.04.11 15:34 Сейчас в теме
За оформление публикации "+" АДНАЗНАЧНА...Жириновский :D
20. Александр Медведев (anig99) 2544 19.04.11 16:10 Сейчас в теме
Весна, однако. Пока только один комментарий как-то связан с обработкой...
21. Александр Зубцов (iov) 362 19.04.11 16:30 Сейчас в теме
обработка заслуживает пристального внимания но девушка таки победила и внимание досталось ей :D
22. Александр Медведев (anig99) 2544 19.04.11 17:53 Сейчас в теме
Мы попали на первую страницу!
23. Игорь Исхаков (Ish_2) 981 19.04.11 19:55 Сейчас в теме
(22) Этого мало.
Твоя обработка вполне претендует (скажу по секрету) на выбор экспертов.
Они тоже люди.
24. Александр Медведев (anig99) 2544 19.04.11 20:12 Сейчас в теме
(23) надо будет цену за обработку установить (:
25. Антон Рощин (wolfsoft) 2416 20.04.11 13:10 Сейчас в теме
Так и знал, что здесь обсуждают фото девушки! :D
26. Сергей (Che) Коцюра (CheBurator) 3387 20.04.11 14:40 Сейчас в теме
Как модератор категорически советую аватар обработки сменить на более содержательный и отражающий суть разработки. Фото девушек и вольные аватары - помещайте в блог и в комменты.
27. Александр Медведев (anig99) 2544 20.04.11 14:51 Сейчас в теме
(26) аватар отражает суть обработки - простое, общедоступное и наглядное чтение XML файлов.
Собственно здесь аватар не менее связан с сутью обработки.


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

Я не говорил, что тут работа как с текстом, тут на уровень выше, работа с элементами (тэгами). Но XML по сути объектная модель данных, с такой моделью и хочется работать.
40. Ийон Тихий (cool.vlad4) 41 01.10.11 00:53 Сейчас в теме
(39) Вобще-то в 1С-ке используется как раз таки объектная модель - DOM - которая и выполняет всю грязную работу, ну и память жрет. Был бы sax парсер - вот тогда бы вы делали бы все ручками;-) Не, то, что вы имеете ввиду, это просто отсутствие синтаксического сахара, упрощающего написание кода, - который есть в других языках.
41. Ийон Тихий (cool.vlad4) 41 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) 2544 01.10.11 01:05 Сейчас в теме
(41) идеальных языков нет. к С есть претензии по массивам и работе с БД.
43. Ийон Тихий (cool.vlad4) 41 01.10.11 01:30 Сейчас в теме
(42) ну, это не совсем C - это C#, который вобщем-то разительно отличается от своего предка. Но у меня претензий не было;-) Чем старше становлюсь, тем больше убеждаюсь, что не в языке правда;-).
44. Sergey Yudin (svs74) 9 05.11.11 07:53 Сейчас в теме
Вполне приличная обработка, для моего конкретного случая подошла весьма, т.к. самому некогда было заморачиваться.
45. Юлия Петрова (petrovaUL) 30.11.11 13:49 Сейчас в теме
Для проверки файла ХМЛ пригодится
46. Герман (German) 933 16.03.12 22:05 Сейчас в теме
47. arjuna (arjuna) 20.05.12 09:39 Сейчас в теме
Еслиб ни девка, прошел бы мимо. Рефлекс блин. Она особо ии чем не отличается, таких сотни на любом мусорном сайте, но на этом конкуренции нету. Главное чтоб в тенденцию не перешло.
ABudnikov; baikalpharm; +2 Ответить 1
48. Игорь Хитров (Новенький_2209) 17.09.12 15:31 Сейчас в теме
С изобретением велосипеда.
Новиков; +1 Ответить
49. Евгений Шабалин (xzorkiix) 27 13.06.13 09:20 Сейчас в теме
Я бы вдул. и "Инфостарт одобрил".

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

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

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