Имя: Пароль:
1C
1С v8
Формирую xml. Не получается многострочный текст в атрибуте.
0 Smallrat
 
18.01.13
08:07
Простой код:

   ЗаписьXML = Новый ЗаписьXML;
   ЗаписьXML.ОткрытьФайл("d:\test.xml", "UTF-8");
   
   ЗаписьXML.ЗаписатьОбъявлениеXML();
   ЗаписьXML.ЗаписатьНачалоЭлемента("a");
   ЗаписьXML.ЗаписатьАтрибут("b",    "это многострочный "+Символы.ПС+"текст");
   ЗаписьXML.ЗаписатьКонецЭлемента();
   ЗаписьXML.Закрыть();


Получаю:
<?xml version="1.0" encoding="UTF-8"?>
<a b="это многострочный
текст"/>

А надо:
<?xml version="1.0" encoding="UTF-8"?>
<a b="это многострочный&#10;текст"/>

Как мне получить правильный XML ?
1 Smallrat
 
18.01.13
08:30
пробовал через ДокументDOM - один фиг.
А городить огород с заменой переноса на какой-нить тег, чтобы потом его через обработку текста поменять на &#10; , мне не хочется. Лучше уж в свойство "text" элемента записать - так оно работает.
2 cw014
 
18.01.13
08:31
ЗаписьXML.ЗаписатьАтрибут("b",     "это многострочный &#10;текст");
3 cw014
 
18.01.13
08:31
Заменить сущности не судьба? :)
4 alexei366
 
18.01.13
08:33
Этож тебе не HTML, и какая разница как в файле выглядит, при разборе у тя нормально прочитается
5 Xapac_2
 
18.01.13
08:35
(4) +100500
6 Smallrat
 
18.01.13
08:38
(2) ЗаписьXML заменит амперсант.
(3) на крайний случай )
(4) дык - фиг, 1С может и прочитает, не пробовал. А другие разборщики считают это за пробел.
7 alexei366
 
18.01.13
08:39
Мне кажется если другими ты будешь также воспринимать что это XML должно быть нормально, хотя фиг знает
8 Smallrat
 
18.01.13
08:46
(7) не воспринимают (
9 Smallrat
 
18.01.13
10:21
забил на атрибут и сделал через текстовое свойство элемента (ЗаписьXML.ЗаписатьТекст())
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший