mirror of
https://github.com/Kirill/simplexml.git
synced 2026-06-21 00:59:21 +02:00
Version 1.0.1
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
program Test;
|
||||
|
||||
uses
|
||||
Forms,
|
||||
TestForms in 'TestForms.pas' {TestForm};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TTestForm, TestForm);
|
||||
Application.Run;
|
||||
end.
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<root>
|
||||
<elem1 a1="v1" a2="v2"> 1</elem1>
|
||||
<!-- -->
|
||||
<elem2 a1="v1" a2="v2"> 2</elem2>
|
||||
</root>
|
||||
@@ -0,0 +1,43 @@
|
||||
object TestForm: TTestForm
|
||||
Left = 267
|
||||
Top = 132
|
||||
Width = 696
|
||||
Height = 480
|
||||
Caption = 'TestForm'
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -13
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
PixelsPerInch = 120
|
||||
TextHeight = 16
|
||||
object Button1: TButton
|
||||
Left = 40
|
||||
Top = 16
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Open'
|
||||
TabOrder = 0
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object Memo1: TMemo
|
||||
Left = 40
|
||||
Top = 60
|
||||
Width = 361
|
||||
Height = 309
|
||||
Lines.Strings = (
|
||||
'Memo1')
|
||||
TabOrder = 1
|
||||
end
|
||||
object Button2: TButton
|
||||
Left = 128
|
||||
Top = 16
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Save'
|
||||
TabOrder = 2
|
||||
OnClick = Button2Click
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,81 @@
|
||||
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.
|
||||
Binary file not shown.
+4479
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user