Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

xml, utf8


Scott Storch ©   (2012-02-09 12:12:00) 

как указать кодировку utf-8 для xml.

XMLDoc.Encoding := 'utf-8'; <- Access Violation
XMLDoc.Active := True;
XMLDoc.XML.Text := AnsiToUtf8(S);


Плохиш   (2012-02-09 13:11:00) [1]


> Scott Storch ©   (09.02.12 12:19) [2]
>
> он уже создан

Должен быть ещё и открыт/создан
XMLDoc.Active := true;


Dimka Maslov   (2012-02-09 12:43:00) [2]

Недопустимый символ это одно, а AV совсем другое. Оно, к слову сказать, вызникает из-за того, что свойство DOMDocument в момент установки кодировки имеет значение nil. Отсюда мораль - надо что-то сначала проинициализировать, а кодировку задавать потом.


Scott Storch   (2012-02-09 12:32:00) [3]

есть другие
> Либо компонент сильно кривой


Пользуюсь стандартным парсером TXMLDocument. Для теста просто кидаю на форму и пытаюсь назначить значение свойству encoding.

XMLDoc.XML.Text := ANSIToUTF8(S); - здесь после преобразования в значении атрибута может оказаться символ "<". Парсер ругается что это недопустимый символ.


Dimka Maslov   (2012-02-09 12:23:00) [4]

При неправильном задании значения свойства не должно быть AV. Либо компонент сильно кривой, либо объект создан, но в данной точке переменная XMLDoc не инициализирована (неправильно присвоена), либо объект уже ранее уничтожен. Надо взять и пройтись отладчиком внутрь метода присвоения кодировки и посмотреть что там не так.


Scott Storch   (2012-02-09 12:19:00) [5]

он уже создан


Dimka Maslov   (2012-02-09 12:17:00) [6]

А создавать объект XMLDoc кто будет? Пушкин?


Наверх

Титульная страница Поиск, карта сайта Написать письмо