XML child node и текст

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

XML child node и текст

Сообщение Brainenjii » 04.04.2013 10:34:28

Безумная задача. ODT первращает начальные пробелы в <text:s text:c="%d"/> В итоге получается что-то вроде
<text:p text:style-name="P4">
<text:s text:c="4"/>Проверка
</text:p>

Как такое сделать средствами FPC? Пусть aParent у меня <text:p text:style-name="P4">, a aSpaces - <text:p text:style-name="P4">. Тогда, если я делаю
Код: Выделить всё
aParent.AppendChild(aSpaces);
aParent.TextContent := 'Проверка';

остаётся только текст. В общем, много разных способов перепробовал - в тупике. Как быть?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: XML child node и текст

Сообщение hovadur » 04.04.2013 16:37:36

Brainenjii писал(а):
Код: Выделить всё
aParent.AppendChild(aSpaces);
aParent.TextContent := 'Проверка';

остаётся только текст. В общем, много разных способов перепробовал - в тупике. Как быть?

Код: Выделить всё
aParent.AppendChild(aSpaces);
aParend.AppendChild(Doc.CreateTextNode('Проверка'));

где Doc твой TXMLDocument.
hovadur
постоялец
 
Сообщения: 116
Зарегистрирован: 31.01.2013 15:50:41

Re: XML child node и текст

Сообщение Brainenjii » 04.04.2013 17:40:33

Спасибо! Правда так фигово xslt преобразование работает ^_^ Проблему решил заменой начальных пробелов на неразрывные пробелы...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: XML child node и текст

Сообщение vada » 05.04.2013 17:43:50

С пробелами реально проблема. Например Библиотека msxml от M$ не разрешае в xslt файле использовать &nbsp; Ругается и пробелы, которые мне нужны, проглатывает. Просто беда.
А имена файлов, например, картинки (с русскими буквами) переворачивает в %D0%90бла-бла-бла последовательности, а потом сам же IE эту хрень не понимает! А еще в xslt указываешь что выходной документ должен быть в кодировке UTF-8. Он и получается в UTF-8, но в заголовке прописывает UTF-16, ну , естественно, IE в это не врубается.
Так что у меня в программе наставлена куча костылей. Нахожу UTF-16 заменяю на UTF-8. Последовательность " %D0%90бла-бла-бла" перекодирую обратно в русские буквы. Пробелы где надо вставляю...
Потом только передаю в браузер. В общем, ГЕМОРРОЙ!!!!!!!!!
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: XML child node и текст

Сообщение Sergei I. Gorelkin » 06.04.2013 22:34:13

&nbsp; и прочие named entities относятся к HTML.
В XML допустимо использовать только 5 из них: &lt; &gt; &amp; &apos; и &qout;
Остальные надо заменять числовыми эквивалентами, например &nbsp; на &#160;
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: XML child node и текст

Сообщение vada » 08.04.2013 12:32:58

Да про пробел то все понятно. Единственно не понятно - почему &nbsp; нельзя использовать при формировании HTML. Как-то это совсем нелогично.
Я же &nbsp; ставлю внутри тегов HTML.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru