Главная страница
    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.47 MB
Время: 0.037 c
1-1098863806
ызфт
2004-10-27 11:56
2004.11.07
Запутался в ООП


14-1098197444
Pat
2004-10-19 18:50
2004.11.07
Расширение или переделка?


3-1096963548
neat
2004-10-05 12:05
2004.11.07
DBGrid: постраничный вывод


14-1097843522
dreamse
2004-10-15 16:32
2004.11.07
Open Source софт для клубов


14-1098185744
Ilya____
2004-10-19 15:35
2004.11.07
GetFileSize





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский