Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Выгрузка данных в XML. Создание файла TFileStream ом.   Найти похожие ветки 

 
pyJIoH ©   (2006-10-19 11:37) [0]

Проблема вообщем-то странная,
выгружаю данные из БД в xml файл,
записывая их FileStream.WriteBuffer,
однако попытке открыть некоторые XML файлы,
возникает трабла:
Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей XSL. Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее.
--------------------------------------------------------------------------------
В текстовом комментарии обнаружен недопустимый знак.


Лечится она просто - открываем блокнотом и заного сохраняем и все ok.
Данные на первый взгляд одинаковые,
с другой стороны новый файл весит на 100kb меньше (для 8mb xml файла),
а ExamDiff Pro виснет при их сравнивании.

В какую сторону мне копать?


 
umbra ©   (2006-10-19 12:10) [1]

может, XSL нужного нет?


 
pyJIoH ©   (2006-10-19 12:17) [2]

Нет, я просто пересохраняю файл блокнотом
и файл становится "правильным" и легче..


 
StriderMan ©   (2006-10-19 12:30) [3]

посмотри в НЕХ"е на предмет различий.


 
umbra ©   (2006-10-19 12:32) [4]

похоже на то, что в файле был блок бинарных данных, которые после сохранения в блокноте успешно исчезают. Вы пробовали проверить полученный XML на валидность до его открытия?


 
Reindeer Moss Eater ©   (2006-10-19 13:44) [5]

записывая их FileStream.WriteBuffer,

Почему FileStream.WriteBuffer?
Само тело xml документа руками что ли формируется?


 
Amoeba ©   (2006-10-19 13:51) [6]

Какая база данных? Какие компоненты доступа используются? Если ADO, то руками ничего делать не надо.


 
pyJIoH ©   (2006-10-19 14:06) [7]


> Само тело xml документа руками что ли формируется?

Да, все создается руками

Вообщем нашел я несколько причин,
одна из них - при выгрузке из БД с немецкой кодировкой,
мой аналог блокнота (BRED) при пересохранении просто прибивал незнакомые ему символы (отсюда кстати потеря "веса" файла).

Раньше я юзал IXMLDOM для создания файлов,
но у него есть минусы:
он медленный,
при выгрузке больших объемов данных - раздувается,
и заменяет все амляуты на свои какие-то символы


> Какая база данных? Какие компоненты доступа
> используются? Если ADO, то руками ничего делать не
> надо.

База любая, я пишу компонент экпорта


 
Reindeer Moss Eater ©   (2006-10-19 14:17) [8]

Да, все создается руками

Ну и чего же мы тогда хотим?
Указывай правильную кодировку в прологе.


 
pyJIoH ©   (2006-10-19 14:46) [9]

В ProcessingInstruction я указываю encoding="UTF-8"
или мне нужно напрямую указывать коды символов?
типа a-umlaut - ä?

Создал файл в Excel 2007 с умляутами,
распаковал, внутри в xml файле так и они записаны, как есть
т.е. просто буквы немецкой кодировкой, файл открывается эксплорером нормально..

ничего не понимаю.. (с)


 
pyJIoH ©   (2006-10-19 14:47) [10]

в строке типа a-umlaut - ?
был указан код &#0228


 
pyJIoH ©   (2006-10-19 14:48) [11]

блин =)
& # 0228 ;
без пробелов


 
Reindeer Moss Eater ©   (2006-10-19 14:52) [12]

FileStream.WriteBuffer,

На что у тебя указывает первый параметр WriteBuffer?
Иными словами в чем у тебя тело xml документа перед сохранением?


 
pyJIoH ©   (2006-10-19 15:35) [13]

Только сейчас обратил внимание,
я везде использую WideString, а базовый класс написанный не мной,
который собственно и осуществляет запись WriteBuffer делает это с перемнной типа string..


 
pyJIoH ©   (2006-10-19 19:29) [14]

Вообщем проблема решена, использую везде WideString,
перед записью в файл перевожу в UTF-8 UnicodeToUtf8.
Или можно сохранять файл как UTF-16.


 
pyJIoH ©   (2006-10-19 19:30) [15]

p.s. всем спасибо за помощь
=)



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.08 c
3-1159437648
Horhio
2006-09-28 14:00
2006.12.03
MS SQL + Delphi как реализовать LookUP поле


2-1163327804
lsvit
2006-11-12 13:36
2006.12.03
Работа с exe файлами


15-1163324692
Kerk
2006-11-12 12:44
2006.12.03
Фонарь


15-1163161494
syte_ser78
2006-11-10 15:24
2006.12.03
Пятничное открытие


15-1163183911
Pa
2006-11-10 21:38
2006.12.03
ZipTV и русские имена в архивах, кто-нибудь разбирался?