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

Вниз

TXMLDocuemnt, проблема с кирилицей   Найти похожие ветки 

 
Calm ©   (2004-10-20 15:01) [0]

Уважаемые коллеги,
пишу сохранение данных в xml-файл.
Написал вот такой метод:

procedure TSmeta.Save(FileName: string);
var
 xmlWorkList:IXMLNode;
 xmlWork:IXMLNode;
 xmlWorkParam:IXMLNode;
 xmlKoeffList:IXMLNode;
 i:Integer;
begin
 dmCore.XMLDocument.XML.Add("<?xml version="1.0" standalone=""yes"" ?>");
 dmCore.XMLDocument.XML.Add("<smeta>");  // создаю xml с корневым элементом
 dmCore.XMLDocument.XML.Add("</smeta>");
 dmCore.XMLDocument.Active:=True;

 xmlWorkList:=dmCore.XMLDocument.DocumentElement.AddChild("works");
 xmlWorkList.Attributes["count"]:=Works.Count; // это не требуется, просто тренируюсь записывать атрибуты :)

 // сохраняем все работы
 i:=0;
 while (i<=Works.Count-1) do
 begin
   xmlWork:=xmlWorkList.AddChild("work");

   xmlWorkParam:=xmlWork.AddChild("id");
   xmlWorkParam.Text:=IntToStr(Works[i].id);

   xmlWorkParam:=dmCore.XMLDocument.CreateNode("caption", ntElement);
   xmlWorkParam.Text:=Works[i].Caption;  // это строковое поле с кирилицей
   xmlWork.ChildNodes.Add(xmlWorkParam);

   xmlWorkParam:=xmlWork.AddChild("price_total");
   xmlWorkParam.Text:=FormatFloat("0.#####", Works[i].Price_total);
   Inc(i);
 end;

 dmCore.XMLDocument.SaveToFile(FIleName);

end;


Должен получиться файл примерно структуры:

<?xml version="1.0" standalone="yes"?>
<smeta>
 <works count="2">
   <work>
     <id>0</id>
     <caption>Тестовая запись на русском языке</caption>
     <price_total>10,9</price_total>
   </work>
   <work>
     <id>0</id>
     <caption>Martishkin trud</caption>
     <price_total>13,4</price_total>
   </work>
 </works>
</smeta>

Вызываю метод, получаю на месте кирилицы совершенно непонятные значки неизвестной кодировки.
Возмжно это unicode? как отлючить юникод?

В demos"ах нашел только проект XMLBuilder, но не обнаружил там ответов на свои вопросы :(
Хелп, разумеется, тоже читал внимательно(?) :))

Буду признателен за ссылки с подробными материалами по теме TXMLDocument и с чем его едят.


 
Algol   (2004-10-20 16:16) [1]

<?xml version="1.0" standalone="yes" encoding="windows-1251" ?>


 
Calm ©   (2004-10-20 16:37) [2]

Не помогает :(
Пишу
<?xml version="1.0" standalone=""yes"" encoding="windows-1251" ?>

Получаю исключение с текстом
Invalid for an xml declaration

Line: 1
<?xml version="1.0" standalone="yes" enc" Process stopped ...


 
Algol   (2004-10-20 16:40) [3]

У тебя просто во фрагменте standalone=""yes"" два апострофа вместо кавычек ...


 
Calm ©   (2004-10-20 16:42) [4]

да вообще-то я этот фрагмент из хелпа взял и до добавления  encoding="windows-1251" это работало. За исключением кириллицы.


 
Calm ©   (2004-10-20 16:44) [5]

Проверил,
использование только кавычек " или только апострофов " проблемы не решает.

:(


 
Algol   (2004-10-20 16:52) [6]

Да как это не решает??
Скопируй вот это
<?xml version="1.0" encoding="windows-1251" standalone="yes"?>
<smeta>
<works count="2">
  <work>
    <id>0</id>
    <caption>Тестовая запись на русском языке</caption>
    <price_total>10,9</price_total>
  </work>
  <work>
    <id>0</id>
    <caption>Martishkin trud</caption>
    <price_total>13,4</price_total>
  </work>
</works>
</smeta>

В блокнот, сохрани в temp.xml, открой в эксплорере, и скажи мне что оно не отображается!


 
Calm ©   (2004-10-20 16:57) [7]

Отображается в эксплорере. А у меня собственно к эклсплореру никаких притензий :))

В ставил эту строку в прогу - заработало. Видимо где-то какой-то символ неаккуратно вставился\недописался.

спасибо, Algol.

Да, кстати, я таким обазом могу записать любой текст с любыми печатными знаками?
Как быть с многострочным текстом?


 
Algol   (2004-10-20 17:02) [8]


> Да, кстати, я таким обазом могу записать любой текст с любыми
> печатными знаками?

Нет, не любыми. Читай спецификацию XML



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
14-1098301751
Maxi_L
2004-10-20 23:49
2004.11.07
нужна помощь


1-1098431939
Baradatiy
2004-10-22 11:58
2004.11.07
Визуальное линковние объектов


3-1097211160
SergeyMel
2004-10-08 08:52
2004.11.07
Пол (муж. или жен.), Ищу алгоритм или красивое готовое решен.


1-1098535699
NfTser
2004-10-23 16:48
2004.11.07
Separator не скрывается


14-1097832119
}|{yk
2004-10-15 13:21
2004.11.07
Программа составления генеалогий