Die source davon lässt sich unter D2009 nicht kompilieren da einige benötigte Bibliotheken zu alt sind. Ich will ja auch was eigenes machen.
Um die Daten zu importieren sieht mein Code nun so aus (ist noch in der Testphase):
Code:
procedure TForm2.Button3Click(Sender: TObject);
var
i : Integer;
wpt1_node : Txmlnode;
gc_node : Txmlnode;
cacheGC: String;
CacheTime : String;
CacheDesc : String;
cacheUrl : String;
CacheUrln : String;
CacheSym : String;
CacheType : String;
CacheId : String;
CacheAvail: String;
CacheArch : String;
CacheXMLNS: String;
GSName : String;
begin
Memo1.Lines.Clear;
ADoc := TNativeXml.Create(self);
ADoc.LoadFromFile('1.gpx');
wpt1_node := adoc.Root.FindNode('wpt');
cacheGC := wpt1_node.FindNode('name').Value;
CacheTime := wpt1_node.FindNode('time').Value;
CacheDesc := wpt1_node.FindNode('desc').Value;
CacheUrl := wpt1_node.FindNode('
url').Value;
CacheUrln := wpt1_node.FindNode('urlname').Value;
CacheSym := wpt1_node.FindNode('sym').Value;
CacheType := wpt1_node.FindNode('type').Value;
gc_node := wpt1_node.FindNode('groundspeak:cache');
CacheId := gc_node.Attributes[0].Value;
CacheAvail:= gc_node.Attributes[1].Value;
CacheArch := gc_node.Attributes[2].Value;
CacheXMLNS:= gc_node.Attributes[3].Value;
GSName := gc_node.FindNode('groundspeak:name').Value;
end;
Ist es so ok oder gibt es bessere Möglichkeiten?
Dann noch eine andere Frage für später wenn ich die Daten in eine Datenbank speichern möchte. Und zwar sind in der
XML Datei immer verschieden viele Einträge <wpt>, es könnten bis zu 30 oder theoretisch sogar mehr sein. Nun frage ich mich wie ich so etwas in eine
DB bringe. Im Code würde ich das mit einem dynamischen Array lösen, aber wie geht das mit einer Datenbank??