Einzelnen Beitrag anzeigen

Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#1

Hilfe beim ersten XML Versuch!

  Alt 13. Feb 2010, 02:25
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>&#660;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
Takeo
Don't make me angry...
You wouldn't like me when I'm angry!
Blut ist leben, Leben ist Blut, ins Licht geboren suchen wir die Dunkelheit!
  Mit Zitat antworten Zitat