mirror of
https://github.com/Kirill/simplexml.git
synced 2026-04-26 23:56:13 +02:00
82 lines
1.9 KiB
ObjectPascal
82 lines
1.9 KiB
ObjectPascal
unit TestForms;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, SimpleXML, StdCtrls;
|
|
|
|
type
|
|
TTestForm = class(TForm)
|
|
Button1: TButton;
|
|
Memo1: TMemo;
|
|
Button2: TButton;
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
TestForm: TTestForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TTestForm.Button1Click(Sender: TObject);
|
|
var
|
|
aDoc: IXmlDocument;
|
|
anElem2: IXmlNode;
|
|
begin
|
|
// Ñîçäàåì ïóñòîé äîêóìåíò XML
|
|
aDoc := CreateXmlDocument;
|
|
|
|
// Ñ÷èòûâàåì èç ôàéëà
|
|
aDoc.Load(ExtractFilePath(ParamStr(0)) + '\Test.xml');
|
|
|
|
// Âûâîäèì â Memo1 ïîëíûé òåêñò ñ÷èòàíîãî XML
|
|
Memo1.Lines.Text := aDoc.Xml;
|
|
|
|
Memo1.Lines.Add('------------------------');
|
|
|
|
// Èùåì ïåðâûé ýëåìåíò ñ òýãîì 'elem2'
|
|
anElem2 := aDoc.DocumentElement.SelectSingleNode('elem2');
|
|
|
|
// Âûâîäèì â Memo1 XML-òåêñò ýëåìåíòà anElem2
|
|
Memo1.Lines.Add(anElem2.Xml);
|
|
|
|
Memo1.Lines.Add('------------------------');
|
|
|
|
// Âûâîäèì â Memo1 çíà÷åíèå àòðèáóòà 'a2' ýëåìåíòà anElem2
|
|
Memo1.Lines.Add(anElem2.GetAttr('a2'));
|
|
end;
|
|
|
|
procedure TTestForm.Button2Click(Sender: TObject);
|
|
var
|
|
aDoc: IXmlDocument;
|
|
anElem: IXmlElement;
|
|
begin
|
|
// Ñîçäàåì ïóñòîé äîêóìåíò XML ñ êîðíåâûì ýëåìåíòîì "root-element"
|
|
aDoc := CreateXmlDocument('xml');
|
|
|
|
// Ñîçäàåì ýëåìåíò 'elem' è äîáàâëÿåì åãî â êà÷åñòâå äî÷åðíåãî ýëåìåíòà äëÿ êîðíåâîãî
|
|
anElem := aDoc.DocumentElement.AppendElement('elem');
|
|
|
|
// Äîáàâëÿåì àòðèáóòû 'a1' è 'a2' ê íîâîìó ýëåìåíòó
|
|
anElem.SetAttr('a1', 'elem1 a1');
|
|
anElem.SetAttr('a2', 'elem1 a2');
|
|
|
|
// Äîáàâëÿåì åùå îäèí ýëåìåíò 'elem'
|
|
anElem := aDoc.DocumentElement.AppendElement('elem');
|
|
anElem.SetAttr('a1', 'elem2 a1');
|
|
anElem.SetAttr('a2', 'elem2 a2');
|
|
|
|
// Ñîõðàíÿåì äîêóìåíò â ôàéë
|
|
aDoc.Save(ExtractFilePath(ParamStr(0)) + '\Test2.xml');
|
|
end;
|
|
|
|
end.
|