Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi&XML 
:(
    Опции темы
max-@
Дата 10.4.2005, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 8.12.2004
Где: Тольятти

Репутация: нет
Всего: нет



Как парсить XML в Delphi покажите простинкий пример....пожалуйста!
Добавлено @ 14:47
блин уже сам разобрался................а как записывать в XML средствами Delphi
PM MAIL WWW   Вверх
SPrograMMer
Дата 10.4.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 2
Всего: 6



Цитата(max @ 10.4.2005, 14:43)
Как парсить XML в Delphi покажите простинкий пример....пожалуйста!
Добавлено @ 14:47
блин уже сам разобрался................а как записывать в XML средствами Delphi

ХМ, ну и как же ты разобрался Как парсить XML в Delphi
Чего использовал?
Добавлено @ 17:29
TXMLDocument с вкладки Internet посмотри...


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
Medved
Дата 10.4.2005, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Вот маленький пример из моей программы:

Какие типы сохраняем:

Код

procedure TSettingValue.SetDefault;
begin
{General}
  IsLogFile := true;
  PathLogFile := ProgramPath+cLogFileName;
  ShowInTaskbar := true;
  ShowInSystemtray := true;
  MinimizeToSystemtray := true;

  Separator :=  '$';
  FileFilterDialogWindow := 'MS Excel files (*.xls)|*.XLS|MS Word files (*.doc)|*.DOC|Text files (*.txt)|*.TXT|All files (*.*)|*.*';
  DefaultFilterIndex := 4;

{Path} //*
  LangauageFolder := ProgramPath+cLangauageFolderName;
  DataFolder := ProgramPath+cDataFolderName;
  AttachFolder := ProgramPath+cAttachFolderName;

{Position} //*
  Bottom := 100;
  Left := 100;
  Right := 750;
  Top := 550;

end;


Создаем XML:

Код

procedure TStoreSetting.CreateXMLDoc(AComponent: TComponent; ACreate: boolean);
var
  appIXMLNode,tmpIXMLNodeChild,tmpIXMLNodeChild2 : IXMLNode;
begin
  SetDefault;

  if ACreate then
    FXMLDocument := TXMLDocument.Create(AComponent)
  else
    FXMLDocument.XML.Text := '';

  FXMLDocument.Active := false;

  try
    try
      FXMLDocument.NodeIndentStr := '  ';
      FXMLDocument.DOMVendor := GetDOMVendor('MSXML');
      FXMLDocument.Options := [doNodeAutoCreate,doNodeAutoIndent,doAttrNull,doAutoPrefix,doNamespaceDecl];
      FXMLDocument.Active := true;

      FXMLDocument.Version := UTF8Encode('1.0');
      FXMLDocument.Encoding := UTF8Encode('utf-8');

      appIXMLNode := FXMLDocument.AddChild(UTF8Encode(UpperCase('application')));
      with appIXMLNode do
      begin
        Attributes['name'] := UTF8Encode(cApplicationName);
        Attributes['version'] := UTF8Encode(Self.ProgramVersion);
      end;

      tmpIXMLNodeChild := appIXMLNode.AddChild(UTF8Encode(UpperCase('position')));
      with tmpIXMLNodeChild do
      begin
        Attributes['bottom']  := Bottom;
        Attributes['left']    := Left;
        Attributes['right']   := Right;
        Attributes['top']     := Top;
      end;

      tmpIXMLNodeChild := appIXMLNode.AddChild(UTF8Encode(UpperCase('path')));
      with tmpIXMLNodeChild do
      begin
        Attributes['LangauageFolder'] := UTF8Encode(LangauageFolder);
        Attributes['DataFolder']      := UTF8Encode(DataFolder);
        Attributes['AttachFolder']    := UTF8Encode(AttachFolder);
      end;

      tmpIXMLNodeChild := appIXMLNode.AddChild(UTF8Encode(UpperCase('general')));
      with tmpIXMLNodeChild do
      begin
        Attributes['IsLogFile']               := Ord(IsLogFile);
        Attributes['PathLogFile']             := UTF8Encode(PathLogFile);
        Attributes['ShowInTaskbar']           := Ord(ShowInTaskbar);
        Attributes['ShowInSystemtray']        := Ord(ShowInSystemtray);
        Attributes['MinimizeToSystemtray']    := Ord(MinimizeToSystemtray);
        Attributes['FileFilterDialogWindow']  := UTF8Encode(FileFilterDialogWindow);
        Attributes['DefaultFilterIndex']      := DefaultFilterIndex;
      end;


      FXMLDocument.SaveToFile(Self.ProgramPath+cServiceApplicationName+cDefExtXML);
      FXMLDocument.FileName := (Self.ProgramPath+cServiceApplicationName+cDefExtXML);
      if FXMLDocument.Active then FXMLDocument.Active := false;

    except

    end;
  finally
  end;
end;


Загружаю:

Код

function TStoreSetting.Load: boolean;
var
  appIXMLNode,tmpIXMLNodeChild,tmpIXMLNodeChild2 : IXMLNode;
begin
  result := false;
  try
    try
      FXMLDocument.Active := true;

      appIXMLNode := FXMLDocument.ChildNodes.FindNode(UTF8Encode(UpperCase('application')));
      if appIXMLNode = nil then exit;

      tmpIXMLNodeChild := appIXMLNode.ChildNodes.FindNode(UTF8Encode(UpperCase('position')));
      if tmpIXMLNodeChild = nil then exit;
      with tmpIXMLNodeChild do
      begin
        Bottom  := Attributes['bottom'];
        Left    := Attributes['left'];
        Right   := Attributes['right'];
        Top     := Attributes['top'];
      end;

      tmpIXMLNodeChild := appIXMLNode.ChildNodes.FindNode(UTF8Encode(UpperCase('path')));
      if tmpIXMLNodeChild = nil then exit;
      with tmpIXMLNodeChild do
      begin
        LangauageFolder := Attributes['LangauageFolder'];
        DataFolder      := Attributes['DataFolder'];
        AttachFolder    := Attributes['AttachFolder'];
      end;

      tmpIXMLNodeChild := appIXMLNode.ChildNodes.FindNode(UTF8Encode(UpperCase('general')));
      if tmpIXMLNodeChild = nil then exit;
      with tmpIXMLNodeChild do
      begin
        IsLogFile               := Attributes['IsLogFile'];
        PathLogFile             := Attributes['PathLogFile'];
        ShowInTaskbar           := Attributes['ShowInTaskbar'];
        ShowInSystemtray        := Attributes['ShowInSystemtray'];
        MinimizeToSystemtray    := Attributes['MinimizeToSystemtray'];
        FileFilterDialogWindow  := Attributes['FileFilterDialogWindow'];
        DefaultFilterIndex      := Attributes['DefaultFilterIndex'];
      end;

      result := true;
    except
    end;

  finally
    FXMLDocument.Active := false;
    if not Result then CreateXMLDoc(Application,false);
  end;
end;


Сохраняю:

Код

function TStoreSetting.Save: boolean;
var
  appIXMLNode,tmpIXMLNodeChild,tmpIXMLNodeChild2 : IXMLNode;
begin

  result := false;
  try
    try
      FXMLDocument.Active := true;
      appIXMLNode := FXMLDocument.ChildNodes.FindNode(UTF8Encode(UpperCase('application')));
      if appIXMLNode = nil then exit;

      tmpIXMLNodeChild := appIXMLNode.ChildNodes.FindNode(UTF8Encode(UpperCase('position')));
      with tmpIXMLNodeChild do
      begin
        Attributes['bottom']  := Bottom;
        Attributes['left']    := Left;
        Attributes['right']   := Right;
        Attributes['top']     := Top;
      end;

      tmpIXMLNodeChild := appIXMLNode.ChildNodes.FindNode(UTF8Encode(UpperCase('path')));
      with tmpIXMLNodeChild do
      begin
        Attributes['LangauageFolder'] := UTF8Encode(LangauageFolder);
        Attributes['DataFolder']      := UTF8Encode(DataFolder);
        Attributes['AttachFolder']    := UTF8Encode(AttachFolder);
      end;

      tmpIXMLNodeChild := appIXMLNode.ChildNodes.FindNode(UTF8Encode(UpperCase('general')));
      with tmpIXMLNodeChild do
      begin
        Attributes['IsLogFile']               := Ord(IsLogFile);
        Attributes['PathLogFile']             := UTF8Encode(PathLogFile);
        Attributes['ShowInTaskbar']           := Ord(ShowInTaskbar);
        Attributes['ShowInSystemtray']        := Ord(ShowInSystemtray);
        Attributes['MinimizeToSystemtray']    := Ord(MinimizeToSystemtray);
        Attributes['FileFilterDialogWindow']  := UTF8Encode(FileFilterDialogWindow);
        Attributes['DefaultFilterIndex']      := DefaultFilterIndex;
      end;

      result := true;
    except
    end;

  finally
    FXMLDocument.Active := false;
    if not result then CreateXMLDoc(Application,false);
  end;
end;



--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Петрович
Дата 11.4.2005, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Перенесено из раздела Дельфи


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
s-mike
Дата 11.4.2005, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 9
Всего: 16



Цитата(max @ 10.4.2005, 14:43)
Как парсить XML в Delphi покажите простинкий пример....пожалуйста!

http://forum.sources.ru/index.php?showtopic=81572&hl=xml
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.