Имя: Пароль:
1C
1С v8
Канонизация и нормализация xml
0 wmonref
 
22.07.23
15:09
Приветствую!

Необходимо канонизировать и "нормализовать" xml перед его отправкой на сервер.

Использую следующий код для канонизации:

Процедура Отправить()
   ТекстXML= ТекстXML();
   ТекстXML = СтрЗаменить(ТекстXML,"%ТекДата%",Формат(ТекущаяДата(),"ДФ=""дд-ММ-гггг ЧЧ:мм:сс"""));
   КанонXML(ТекстXML);
КонецПроцедуры

Функция ТекстXML()
    
    Возврат      
    "<?xml version=""1.0"" encoding=""UTF-8""?>
    |<root>
    |<delivery method=""ONLINE"" />
    |<request_timestamp>%ТекДата%</request_timestamp>
    |</root>";
    
КонецФункции


Процедура КанонXML(ТекстXML)
    
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(ТекстXML);
    
    ПостроительDOM = Новый ПостроительDOM;
    ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
    
    ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь, Ложь, " ");
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку(ПараметрыЗаписиXML);
    
    ЗаписьDOM = Новый ЗаписьDOM;
    ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
    
    ТекстXML = ЗаписьXML.Закрыть();

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

Подскажите пожалуйста как "нормализовать" xml ?
1 wmonref
 
24.07.23
12:57
ап
2 vicof
 
24.07.23
13:04
XML = Новый КаноническаяЗаписьXML;
Тип = ТипКаноническогоXML.ИсключающийКаноническийXMLСКомментариями;
XML.УстановитьСтроку(ТипКанонизации);
XML.ЗаписатьОбъявлениеXML();
XML.ЗаписатьНачалоЭлемента("Тип");
XML.ЗаписатьКонецЭлемента();
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс