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

Вниз

Как работать с XML   Найти похожие ветки 

 
тихий вовочка ©   (2004-05-25 22:32) [0]

Где найти пример того, как использовать XML в качестве ini-файла? Посмотрел примеры с TXMLDocument и ничего не понял


 
Polevi ©   (2004-05-26 07:49) [1]

конкретнее


 
тихий вовочка ©   (2004-05-26 15:22) [2]

Конкретнее - три типа объектов, состояние которых задаваются 15 параметрами. Мне надо сохранять это состояние для последующего восстановления. Как, используя TXMLDocument, читать/писать эти состояния? Типа того, что узел "Object name = "Pipa" type = "Object1" " и подузлы "State1 = "1"", "State2 =
"access"".


 
Algol   (2004-05-26 17:23) [3]

procedure TForm1.Button1Click(Sender: TObject);
var Node:IXMLNode;
begin
XMLDocument1.XML.text:="<?xml version="1.0" encoding="windows-1251"?><doc/>";
XMLDocument1.Active:=true;
with XMLDocument1.DocumentElement.AddChild("param") do
 begin
 SetAttribute("name","param1");
 SetAttribute("value",Edit1.Text);
 end;
with XMLDocument1.DocumentElement.AddChild("param") do
 begin
 SetAttribute("name","param2");
 SetAttribute("value",Edit2.Text);
 end;
with XMLDocument1.DocumentElement.AddChild("param") do
 begin
 SetAttribute("name","param3");
 SetAttribute("value",RadioGroup1.ItemIndex);
 end;
//
XMLDocument1.SaveToFile("c:\a.xml");
end;


 
тихий вовочка ©   (2004-05-26 22:27) [4]

Спасибо. А как читать то же самое из файла? И еще - если нужно хранить двоичный код, его нужно как-то кодировать? UUE или еще что?


 
}|{yk ©   (2004-05-27 00:12) [5]

Возьми компоненты TurboPower для работы с XML. Очень удобно.
Скачать можно на sf.net


 
Layner ©   (2004-05-27 10:34) [6]

[3] Algol   (26.05.04 17:23)
Подскажи плз, как так же легко прочитать эту инфу из XML файла? Можно ли как нибудь с помощью SQL-усеченного запроса? Т.е. простая выборка SELECT... такой то ветки.


 
Cobalt ©   (2004-05-27 12:38) [7]

Есть прога от Борланда(xmlmapper.exe, D7), которая по XML почти произвольного формата делает схему преобразования для DataSet.
Подробности не помню, но преобразованный XML (или XML со схемой)можно было давать как файл для TDataSet.
Копай в эту сторону.


 
Layner ©   (2004-05-27 13:17) [8]

Cobalt ©   (27.05.04 12:38)
Спасибо, прога действительно классная!


 
Algol   (2004-05-27 16:03) [9]


> тихий вовочка ©   (26.05.04 22:27) [4]


Чтение вот:
procedure TForm1.Button2Click(Sender: TObject);
var i:Integer;
begin
XMLDocument1.LoadFromFile("c:\a.xml");
for i:=0 to XMLDocument1.DocumentElement.ChildNodes.Count-1 do
if XMLDocument1.DocumentElement<>nil then
with XMLDocument1.DocumentElement.ChildNodes[i] do
 begin
 if NodeName="param" then
   begin
   if GetAttribute("name")="param1" then Edit1.Text:=GetAttribute("value");
   if GetAttribute("name")="param2" then Edit2.Text:=GetAttribute("value");
   if GetAttribute("name")="param3" then
     RadioGroup1.ItemIndex:=GetAttribute("value");
   end;
 end;
end;


 
Algol   (2004-05-27 16:12) [10]


> Layner ©   (27.05.04 10:34) [6]


Если необходимо работать как с БД+SQL, то нужно перобразовывать в БД как указано в [7].
Однако с XML можно работать и с помощью специализированных языков, в том числе запросного типа (см XSLT, XPath), без преобразования в базу данных.


 
Layner ©   (2004-05-27 16:32) [11]

[9] Algol   (27.05.04 16:03)
За чтение спасибо, именно так я и делал. Думал, может красивей есть способ, про XSLT, XPath слышал, да руки не доходили, посмотрю.
Вот кстати, ссылка на TurboPower
http://sourceforge.net/projects/tpxmlpartner/


 
Algol   (2004-05-27 16:52) [12]


> Думал, может красивей есть способ


В принципе можно и красивее, все зависит от способа хранения данных. В данном случае как минимум есть два варианта:
Первый, это как реализовано в примере:
<doc>
<param name="param1" value="ла ла ла"/>
<param name="param2" value="ла ла ла"/>
 ...
</doc>

Но можно хранить и так:
<doc>
<param1>ла ла ла</param1>
<param2>ла ла ла</param2>
 ...
</doc>

Во втором случае чтение данных немного проще. Но есть и недостатки, все зависит от структры данных, которые нужно хранить.


 
afn ©   (2004-05-27 18:36) [13]

Сейчас покапаюсь можа бы найду ссылку. Там что-то вроде использования родного Ms XML парсера в Delph`ях. Сам то я использую DOM и SAX на ява. Если не лень поройся по теме.


 
afn ©   (2004-05-27 18:51) [14]

http://edocs.al.ru/xml/Delphi_XML.html

http://xmlhack.ru/books/xslt/ch_09_02.html

Вот посмотри может быть поможет


 
Layner ©   (2004-05-28 08:58) [15]

Спасибо! Статья вообще супер!



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

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

Наверх




Память: 0.47 MB
Время: 0.023 c
14-1085649835
Prohodil Mimo
2004-05-27 13:23
2004.06.13
Как присвоить значение переменной? :o)


4-1083935348
TCrash
2004-05-07 17:09
2004.06.13
Загрузка CPU


1-1085727686
IgorR
2004-05-28 11:01
2004.06.13
Очистка памяти выделенной в RunTime


3-1085332333
VflowerW
2004-05-23 21:12
2004.06.13
Rave Reports в приложениях


14-1085901334
Kolyan
2004-05-30 11:15
2004.06.13
Троян





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