seit gestern versuche ich mich mit XML Dateien zu befassen und habe schon kleine erfolge.
ich würde jetzt gerne wissen ob meine Vorgehensweise richtig ist
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, DOM, XMLRead,LCLType;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
{ private declarations }
public
DOC:TXMLDocument;
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
ReadXMLFile(DOC,'/home/pluto/daten/eigene/lazarus/d2Engine/pacman/test.plf');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DOC.Free;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
node,node1:TDOMNodeList;
i:Integer;
begin
if key = VK_F1 then begin
{node:=DOC.DocumentElement.GetElementsByTagName('PKName');
if node <> NIl then begin
for i:=0 to node.Count-1 do begin
writeln(node.Item[i].Attributes[0].NodeValue);
end; // for
end; node <> NIl}
node:=DOC.DocumentElement.GetElementsByTagName('PKName');
if node <> NIl then begin
// Autor Name
writeln(node.item[1].Attributes[0].NodeValue);
// Level Map
// writeln(node.Item[1].ChildNodes.Item[0].ChildNodes.count);
for i:=0 to node.Item[1].ChildNodes.Item[1].ChildNodes.count-1 do
writeln(node.Item[1].ChildNodes.Item[1].ChildNodes.Item[i].TextContent);
{ for i:=0 to node.Item[1].ChildNodes.Count-1 do begin
writeln(node.Item[1].ChildNodes.Item[i].Attributes[0].NodeValue);
end;}
end; // node <> NIL
end; // VK_F1
end;
initialization
{$I Unit1.lrs}
end.
Ich bin mit dem Item tag noch nicht zufrieden aber sonst werden die Zeilen falsch ausgeben. die Zeilen Brauche ich so wie die da drin stehen und nicht anders das soll z.b. eine Map werden und in ein 2D Array rein(was aber kein Problem da stellt)
AAAAAAAAAAAAAA
B000000000000A
B000000000000A
BBBBBBBBBBBBBA
CDDDDDDDDDDDDC
C000000000000C
C000000000000C
CDDDDDDDDDDDDC
33333333333333
30000000000003
30000000000003
33333333333333
11111111111111
10000000000001
10000000000001
11111111111111
22222222222222
20000000000002
20000000000002
22222222222222
33333333333333
30000000000003
30000000000003
33333333333333