Hallo,
dies ist mein erster
XML Versuch, und ich habe es zumindest schonmal ansatzweise geschafft, das zumindest ETWAS angezeigt wird xD.
Anscheinend selbes Problem wie:
http://www.delphipraxis.net/internal...t.php?t=168824
und zwar benutze ich die Delphi eigene TXMLDocument Komponente.
Auslesen möchte ich eine
API XML:
Vereinfacht:
Code:
<words>
<word>
<navi id="850">'ampi</navi>
<syllabic/>
<wordclass id="1">1</wordclass>
<ipa>ʔam.pi</ipa>
<lastmodified>20100128181420</lastmodified>
<translations id="11">
<translate>Berührung, die</translate>
</translations>
</word>
<word>
...
</word>
...
<words>
Das herunterladen klappt, nun gehts ans auslesen:
Code:
procedure btnClick(Sender: TObject);
var
ADPLocalFile : TFileName;
StartItemNode : IXMLNode;
ANode : IXMLNode;
s1, s2, s3 : widestring;
begin
ADPLocalFile := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'temp.xml';
try
XMLDoc.FileName := ADPLocalFile;
XMLDoc.Active:=True;
StartItemNode:=XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('word');
ANode := StartItemNode;
repeat
s1 := ANode.ChildNodes['navi'].Text;
s2 := ANode.ChildNodes['ipa'].Text;
s3 := ANode.ChildNodes['translate'].Text;
with LV.Items.Add do
begin
Caption := s1;
SubItems.Add(s2);
SubItems.Add(s3)
end;
ANode := ANode.NextSibling;
until ANode = nil;
finally
DeleteFile(ADPLocalFile);
end;
end;
Leider bekomme ich eine Zugriffsverletzung
Wenn ich den StartItemNode z.B. in "navi" ändere, dann wird zwischendrin 1 Wort ausgelesen, aber
das soll ja nicht der Startwert sein.
Was hab ich da falsch?
Habe mir beispiele angeschaut, die sind so wie in meinem Code!
EDIT:
WTF es ist
2.30Uhr und ich
und
wie ein Wahnsinniger.
Mfg Novo