База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как преобразовать XML строку в структуру данных в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня, 9 часов назад сделано
Odin – Одинэсник.
Просмотр 0 веток ответов
- АвторСообщения
- 7 мая 2025 в 9:00 #32477
Odin – Одинэсник
Участник1С (Код)12345678910111213141516171819202122232425262728293031323334353637381CФункция ПреобразоватьXMLВСтруктуру(XMLСтрока)ЧтениеXML = Новый ЧтениеXML;ЧтениеXML.УстановитьСтроку(XMLСтрока);ЧтениеXML.Прочитать();Результат = Новый Структура;МассивОткрытыхСтрок = Новый Массив;Пока ЧтениеXML.Прочитать() ЦиклЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента ТогдаНовыйУзел = Новый Структура;НовыйУзел.Имя = ЧтениеXML.Имя;Если МассивОткрытыхСтрок.Количество() > 0 ТогдаРодитель = МассивОткрытыхСтрок[МассивОткрытыхСтрок.Количество() - 1];Если Не Родитель.Найти(ЧтениеXML.Имя) ТогдаРодитель.Вставить(ЧтениеXML.Имя, Новый Массив);КонецЕсли;Родитель[ЧтениеXML.Имя].Добавить(НовыйУзел);ИначеРезультат.Вставить(ЧтениеXML.Имя, Новый Массив);Результат[ЧтениеXML.Имя].Добавить(НовыйУзел);КонецЕсли;МассивОткрытыхСтрок.Добавить(НовыйУзел);ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст ТогдаЕсли МассивОткрытыхСтрок.Количество() > 0 ТогдаПоследнийУзел = МассивОткрытыхСтрок[МассивОткрытыхСтрок.Количество() - 1];ПоследнийУзел.Значение = ЧтениеXML.Значение;КонецЕсли;ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента ТогдаМассивОткрытыхСтрок.Удалить(МассивОткрытыхСтрок.Количество() - 1);КонецЕсли;КонецЦикла;Возврат Результат;КонецФункцииЭта функция принимает строку XML, читает ее и преобразует в структуру данных, где ключами являются имена тегов, а значениями — массивы структур, содержащие значения тегов. Коллекции тегов представлены в виде массивов структур.
- АвторСообщения
Просмотр 0 веток ответов
- Для ответа в этой теме необходимо авторизоваться.