Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Выгрузка данных в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.04 c
15-1163512415
Александр Иванов
2006-11-14 16:53
2006.12.03
По XPath кто-нибудь подскажет?


1-1161243221
Varf
2006-10-19 11:33
2006.12.03
Проблемы с Excell в D7 срочно


15-1163490325
IntruderLab
2006-11-14 10:45
2006.12.03
Восстановление панели компонентов


15-1163279958
lookin
2006-11-12 00:19
2006.12.03
Еврохоккейтур - матч второй


15-1163658451
AntiUser
2006-11-16 09:27
2006.12.03
Что вы можете сказать о такой вакансии?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский