Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2013, 19:36   #1
Igor_kud
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 10
По умолчанию Подскажите пожалуйста ...как внести изменения в существующий XML файл в Delphi 7 XMLDocument

Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    XMLDocument1: TXMLDocument;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  node,folder,ifnode,ioverlay:IXMLNode;
  v:OLEVariant;
  s:integer;
  fileName:string;
  implementation
 
{$R *.dfm}
 
 
 
procedure TForm1.Button1Click(Sender: TObject);
 
 
begin
 // XMLDocument1 := XMLDocument1.Create(Self);
 //for S:=1 to 10 do
 
fileName := 'Rukovod.xml';
// Теперь проверяем существует ли файл
if FileExists(fileName)then
//ShowMessage(fileName+' Файл существует,продолжаем работу!')
 
else
begin
 
XMLDocument1.Active := True;
      XMLDocument1.Encoding := 'UTF-8';
      XMLDocument1.Options := [ doNodeAutoCreate, doNodeAutoIndent ];
 
      node := XMLDocument1.AddChild('DATA');
 
      folder := node.AddChild('Nomer_opponenta');
      folder.Text := '1';
 
      ioverlay := folder.AddChild('Otveti_na_testi');
      ifnode := ioverlay.AddChild( 'Test_1' );
      ifnode.Text := 'Rezult_1';
      ifnode := ioverlay.AddChild( 'Test_2' );
      ifnode.Text := 'Rezult_2';
      ifnode := ioverlay.AddChild( 'Test_3' );
      ifnode.Text := 'Rezult_3';
      ifnode := ioverlay.AddChild( 'Test_4' );
      ifnode.Text := 'Rezult_4';
      ifnode := ioverlay.AddChild( 'Test_5' );
      ifnode.Text := 'Rezult_5';
 
     XMLDocument1.SaveToFile('Rukovod.xml');
 
end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
 
begin
XMLDocument1.LoadFromFile('Rukovod.xml');
XMLDocument1.Active := True;
???????node := XMLDocument1.ChildNodes.Nodes['DATA'];
??????????folder := node.AddChild('Nomer_opponenta','DATA');
 тут и нужно сделать какие-то манипуляции:(
 
 end;
 
end.

Последний раз редактировалось Stilet; 05.10.2013 в 11:31.
Igor_kud вне форума Ответить с цитированием
Старый 05.10.2013, 11:22   #2
igh0st
Форумчанин
 
Аватар для igh0st
 
Регистрация: 05.07.2010
Сообщений: 136
По умолчанию

Не совсем понятна цель, напиши что конкретно хочешь вставить в документ.
Из ошибок пока общего плана - в одной процедуре создаешь объект и не уничтожаешь его после использования вообще, это не есть гуд, надо так:
Код:
XMLDocument1 := XMLDocument1.Create(Self);
try
    // что-нибудь делаем с объектом
    XMLDocument1.Active := True;
    XMLDocument1.Encoding := 'UTF-8';
    ...
    XMLDocument1.SaveToFile('Rukovod.xml');
finally
    XMLDocument1.Free;
end;
Соответсвенно на чтение такая же конструкция с созданием и уничтожением объекта в памяти.
igh0st вне форума Ответить с цитированием
Старый 05.10.2013, 16:07   #3
Igor_kud
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 10
По умолчанию

Код HTML:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <DATA>
- <Nomer_opponenta>
  1 
- <Otveti_na_testi>
  <Test_1>Rezult_1</Test_1> 
  <Test_2>Rezult_2</Test_2> 
  <Test_3>Rezult_3</Test_3> 
  <Test_4>Rezult_4</Test_4> 
  <Test_5>Rezult_5</Test_5> 
  </Otveti_na_testi>
  </Nomer_opponenta>
  </DATA>
Вот в такой XML файл нужно добавить <Nomer_opponenta> 2 и все дерево после него.
Igor_kud вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как внести изменения в базу? devf Microsoft Office Excel 1 01.03.2012 10:43
HTML как внести изменения в скрипте? Влад40 HTML и CSS 1 18.01.2012 15:21
Как добавить файл уже в существующий архив (SevenZipVCL) DarkHacker Компоненты Delphi 1 01.11.2011 23:14
как внести данные в файл?! Matadora Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 25.09.2011 13:59
Можно ли внести изменения в файл с расширением .exe Sanlev Помощь студентам 12 08.02.2010 15:49