rabota_s_xml

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
rabota_s_xml [2026/01/14 14:33]
tro
rabota_s_xml [2026/01/14 14:39] (текущий)
tro
Строка 1: Строка 1:
 ====== Работа с XML ====== ====== Работа с XML ======
-===== Чтение XML-строки =====+===== Чтение XML-строки через XDTO=====
 <code> <code>
-ЧтениеХМЛ = Новый ЧтениеXML; + ЧтениеХМЛ = Новый ЧтениеXML; 
-ЧтениеХМЛ.УстановитьСтроку(СтрокаВозвратаХМЛ); + ЧтениеХМЛ.УстановитьСтроку(СтрокаВозвратаХМЛ); 
-рез = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ);+ ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ); 
 + Для Каждого Объект из ОбъектXDTO.Объект Цикл 
 + Для Каждого Свойство из Объект.Свойство Цикл 
 +  
 + КонецЦикла;  
 + КонецЦикла; 
 + 
 +</code> 
 + 
 +===== Чтение XML-строки черкз DOM ===== 
 +<code> 
 +ЧтениеXML = Новый ЧтениеXML; 
 +ЧтениеXML.УстановитьСтроку(Текст); 
 +ПостроительDOM = Новый ПостроительDOM; 
 +ДанныеDOM = ПостроительDOM.Прочитать(ЧтениеXML); 
 +ЧтениеXML.Закрыть(); 
 + 
 +УзелКонтекста = ДанныеDOM.ПервыйДочерний; 
 +Разыменователь = Новый РазыменовательПространствИменDOM(УзелКонтекста); 
 + 
 +РезультатXPath = ДанныеDOM.ВычислитьВыражениеXPath("Объект[@Тип=""СправочникСсылка.ЯзыкиНародовМира""]", УзелКонтекста, Разыменователь); 
 +Объект = РезультатXPath.ПолучитьСледующий(); 
 +Пока НЕ Объект = Неопределено Цикл  
 +    ГУИД = ДанныеDOM.ВычислитьВыражениеXPath("Ссылка/Свойство[@Имя = ""{УникальныйИдентификатор}""]/Значение", Объект, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое; 
 +    Код = ДанныеDOM.ВычислитьВыражениеXPath("Ссылка/Свойство[@Имя = ""Код""]/Значение", Объект, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое; 
 +    Наименование = ДанныеDOM.ВычислитьВыражениеXPath("Свойство[@Имя = ""Наименование""]/Значение", Объект, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое; 
 +    ПометкаУдаления = ДанныеDOM.ВычислитьВыражениеXPath("Свойство[@Имя = ""ПометкаУдаления""]/Значение", Объект, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое; 
 +    Сообщить(СтрШаблон("%1-%2-%3-%4", ГУИД, Код, Наименование, ПометкаУдаления)); 
 +    Объект = РезультатXPath.ПолучитьСледующий(); 
 +КонецЦикла
 </code> </code>
-В рез получаем ОбъектXDTO который можно обходить циклом 
 ===== Материалы ===== ===== Материалы =====
 https://infostart.ru/public/311011/ https://infostart.ru/public/311011/
  • /sites/data/attic/rabota_s_xml.1768401218.txt.gz
  • Последнее изменение: 2026/01/14 14:33
  • tro