Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как убрать объявление типа в заголовке файла XML

Как убрать объявление типа в заголовке файла XML
Я
   travelekb
 
18.02.21 - 14:22
Добрый день.

Механизмом XDTO формирую XML, как можно убрать в заголовке указание типа?
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="https://www.myproject.ru/xdto_import"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;

необходимо записывать в файл просто
<catalog>

Читал, что вроде нужно указать строгий тип - перепробовал все, не помогает.
   d4rkmesa
 
1 - 18.02.21 - 14:32
(0) Первую строку убрать можно просто не вызывая ЗаписатьОбъявлениеXML() . Неймспейсы - только через костыли, перегоняя текст xml в текстовый документ и далее через СтрНайти и СтрЗаменить.
   travelekb
 
2 - 18.02.21 - 14:34
(1) с первой строкой все ок, речь идет именно про xml namespace во второй строке, странно что типизация не помогает
   d4rkmesa
 
3 - 18.02.21 - 14:40
(2) В типовых обычно вариация процедуры для этого:
// Удаляет пространство имен из файла.

//
// Параметры:

//   ИмяФайла - Строка - путь к файлу на диске;
//   ПространствоИмен - Строка - удаляемое пространство имен.

//
Процедура УдалитьПространствоИмен(ИмяФайла, ПространствоИмен)
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ИмяФайла, КодировкаТекста.UTF8);
    СтрокаФайл = Текст.ПолучитьСтроку(2);
    СтрокаФайл = СтрЗаменить(СтрокаФайл, "xmlns=""" + ПространствоИмен
        + """", "");
    Текст.ЗаменитьСтроку(2, СтрокаФайл);
    ТекстДокумента = Текст.ПолучитьТекст();
    Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
    Текст.Записать(ТекстДокумента);
    Текст.Закрыть();
КонецПроцедуры
   travelekb
 
4 - 18.02.21 - 14:43
(3) кошмар конечно.
Спасибо, без костылей получается не обойтись.
   d4rkmesa
 
5 - 18.02.21 - 14:45
(4) Ну, процедуру можно облагородить, не сохранять на диск, заполнять ТекстовыйДокумент через ТекстДок.УстановитьТекст(ЗаписьXML.Закрыть()); , а потом уже сохранять собственно текстовый документ.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.