Форум: "Основная";
Текущий архив: 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 - ?
был указан кодä
← →
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