![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выгрузка данных в XML. Создание файла TFileStream'ом.
pyJIoH © (2006-10-19 11:37:00)Проблема вообщем-то странная,
выгружаю данные из БД в xml файл,
записывая их FileStream.WriteBuffer,
однако попытке открыть некоторые XML файлы,
возникает трабла:
Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей XSL. Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее.
--------------------------------------------------------------------------------
В текстовом комментарии обнаружен недопустимый знак.
Лечится она просто - открываем блокнотом и заного сохраняем и все ok.
Данные на первый взгляд одинаковые,
с другой стороны новый файл весит на 100kb меньше (для 8mb xml файла),
а ExamDiff Pro виснет при их сравнивании.
В какую сторону мне копать?
pyJIoH (2006-10-19 19:30:00) [1]p.s. всем спасибо за помощь
=)
pyJIoH (2006-10-19 19:29:00) [2]Вообщем проблема решена, использую везде WideString,
перед записью в файл перевожу в UTF-8 UnicodeToUtf8.
Или можно сохранять файл как UTF-16.
pyJIoH (2006-10-19 15:35:00) [3]Только сейчас обратил внимание,
я везде использую WideString, а базовый класс написанный не мной,
который собственно и осуществляет запись WriteBuffer делает это с перемнной типа string..
Reindeer Moss Eater (2006-10-19 14:52:00) [4]FileStream.WriteBuffer,
На что у тебя указывает первый параметр WriteBuffer?
Иными словами в чем у тебя тело xml документа перед сохранением?
pyJIoH (2006-10-19 14:48:00) [5]блин =)
& # 0228 ;
без пробелов
pyJIoH (2006-10-19 14:47:00) [6]в строке типа a-umlaut - ?
был указан кодä
pyJIoH (2006-10-19 14:46:00) [7]В ProcessingInstructionя указываю encoding="UTF-8"
или мне нужно напрямую указывать коды символов?
типа a-umlaut - ä?
Создал файл в Excel 2007 с умляутами,
распаковал, внутри в xml файле так и они записаны, как есть
т.е. просто буквы немецкой кодировкой, файл открывается эксплорером нормально..
ничего не понимаю.. (с)
Reindeer Moss Eater (2006-10-19 14:17:00) [8]Да, все создается руками
Ну и чего же мы тогда хотим?
Указывай правильную кодировку в прологе.
pyJIoH (2006-10-19 14:06:00) [9]
> Само тело xml документа руками что ли формируется?
Да, все создается руками
Вообщем нашел я несколько причин,
одна из них - при выгрузке из БД с немецкой кодировкой,
мой аналог блокнота (BRED) при пересохранении просто прибивал незнакомые ему символы (отсюда кстати потеря "веса" файла).
Раньше я юзал IXMLDOM для создания файлов,
но у него есть минусы:
он медленный,
при выгрузке больших объемов данных - раздувается,
и заменяет все амляуты на свои какие-то символы
> Какая база данных? Какие компоненты доступа
> используются? Если ADO, то руками ничего делать не
> надо.
База любая, я пишу компонент экпорта
Amoeba (2006-10-19 13:51:00) [10]Какая база данных? Какие компоненты доступа используются? Если ADO, то руками ничего делать не надо.
Reindeer Moss Eater (2006-10-19 13:44:00) [11]записывая их FileStream.WriteBuffer,
Почему FileStream.WriteBuffer?
Само тело xml документа руками что ли формируется?
umbra (2006-10-19 12:32:00) [12]похоже на то, что в файле был блок бинарных данных, которые после сохранения в блокноте успешно исчезают. Вы пробовали проверить полученный XML на валидность до его открытия?
StriderMan (2006-10-19 12:30:00) [13]посмотри в НЕХ'е на предмет различий.
pyJIoH (2006-10-19 12:17:00) [14]Нет, я просто пересохраняю файл блокнотом
и файл становится "правильным" и легче..
umbra (2006-10-19 12:10:00) [15]может, XSL нужного нет?