|
Как убрать объявление типа в заголовке файла XML
| ☑ |
0
travelekb
18.02.21
✎
14:22
|
Добрый день.
Механизмом XDTO формирую XML, как можно убрать в заголовке указание типа?
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="; xmlns:xs="; xmlns:xsi=";
необходимо записывать в файл просто
<catalog>
Читал, что вроде нужно указать строгий тип - перепробовал все, не помогает.
|
|
1
d4rkmesa
18.02.21
✎
14:32
|
(0) Первую строку убрать можно просто не вызывая ЗаписатьОбъявлениеXML() . Неймспейсы - только через костыли, перегоняя текст xml в текстовый документ и далее через СтрНайти и СтрЗаменить.
|
|
2
travelekb
18.02.21
✎
14:34
|
(1) с первой строкой все ок, речь идет именно про xml namespace во второй строке, странно что типизация не помогает
|
|
3
d4rkmesa
18.02.21
✎
14:40
|
(2) В типовых обычно вариация процедуры для этого:
// Удаляет пространство имен из файла.
//
// Параметры:
// ИмяФайла - Строка - путь к файлу на диске;
// ПространствоИмен - Строка - удаляемое пространство имен.
//
Процедура УдалитьПространствоИмен(ИмяФайла, ПространствоИмен)
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ИмяФайла, КодировкаТекста.UTF8);
СтрокаФайл = Текст.ПолучитьСтроку(2);
СтрокаФайл = СтрЗаменить(СтрокаФайл, "xmlns=""" + ПространствоИмен
+ """", "");
Текст.ЗаменитьСтроку(2, СтрокаФайл);
ТекстДокумента = Текст.ПолучитьТекст();
Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
Текст.Записать(ТекстДокумента);
Текст.Закрыть();
КонецПроцедуры
|
|
4
travelekb
18.02.21
✎
14:43
|
(3) кошмар конечно.
Спасибо, без костылей получается не обойтись.
|
|
5
d4rkmesa
18.02.21
✎
14:45
|
(4) Ну, процедуру можно облагородить, не сохранять на диск, заполнять ТекстовыйДокумент через ТекстДок.УстановитьТекст(ЗаписьXML.Закрыть()); , а потом уже сохранять собственно текстовый документ.
|
|