Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Probleme mit XML Verarbeitung(Anzeige / XML Datei speichern) (https://www.delphipraxis.net/95020-probleme-mit-xml-verarbeitung-anzeige-xml-datei-speichern.html)

Andidreas 29. Jun 2007 10:55


Probleme mit XML Verarbeitung(Anzeige / XML Datei speichern)
 
aloha zusammen...

ich hab in der tutorial sparte von calganX ein tutorial zur xml programmierung gefunden Link

das habe ich jetzt mal nachprogrammiert... aber an einer stelle komm ich nicht weiter...

in dem tutorial gibt es eine prozedur, in der die daten aus einem xml file in die listview eingelesen werden
sollen... diese prozedur sieht so aus:

Delphi-Quellcode:
procedure TMainForm.UpdateList();

const
Names : array[0..8] of String = ('Name', 'Format', 'Ton', 'AnzMedien', 'Bildqualität',
                                 'Tonqualität', 'Gesamt', 'Verliehen', 'Comment');

var
movies : IXMLDOMNodeList;
subNode : IXMLDOMNode;
i, j   : Integer;

begin

  MovieList.Items.Clear;
  MovieList.Items.BeginUpdate;

  movies := xmlDoc.documentElement.selectNodes('movie');

  For i := 0 To movies.length -1 Do
  Begin
    subNode := movies.item[i].selectSingleNode('id');
    MovieList.Items.Add;
    MovieList.Items[i].Caption := subNode.text;
    With MovieList.Items[i].SubItems Do
    Begin
      For j := 0 To Length[NAMES] -1 Do
      Begin
        subNode := movies.item[i].selectSingleNode(NAMES(j));
        If SubNode <> Nil Then
          Add(subNode.text)
        Else
          Add('');
      End;
    End;
  End;

  MovieList.Items.EndUpdate;

end;
beil folgender zeile bringr er mir immer eine fehlermeldung:

Delphi-Quellcode:
      For j := 0 To Length[NAMES] -1 Do
er sagt jedes mal das '(' erwartert wurde aber '[' gefunden wurde...
tausch ich die klammer aus wie der compiler es angibt dann kommt die fehlermeldung
'[' erwartet aber '(' gefunden...

hat jemand ne idee was ich da falsch gemacht hab???

marabu 29. Jun 2007 11:16

Re: Probleme mit XML Verarbeitung(Anzeige / XML Datei speich
 
Hallo Andreas,

du provozierst mit der Konstanten NAMES ein Überdeckungsproblem - ändere den Code mal so ab:

Delphi-Quellcode:
var
  s: TStrings;
  // ...
begin
// ...
    s := MovieList.Items[i].SubItems;
    //  with MovieList.Items[i].SubItems do
    for j := Low(NAMES) to High(NAMES) do
    begin
      subNode := movies.item[i].selectSingleNode(NAMES(j));
      if Assigned(subNode)
        then s.Add(subNode.Text)
        else s.Add('');
    end;
// ...
Grüße vom marabu

Andidreas 29. Jun 2007 11:23

Re: Probleme mit XML Verarbeitung(Anzeige / XML Datei speich
 
danke werd ich mal ausprobieren...

aber ich hab grad noch ein viel größeres problem...
meine xml datei wird gar nicht erstellt :-(

nach dem tutorial müsste durch folgende abfrage meine xml datei erstellt werden...

Delphi-Quellcode:
  If Not FileExists(fAppPath + DATABASE_FNAME) Then
  Begin
    xmlDoc.loadXML('<?xml version="1.0"?><movieorganizer></movieorganizer>');
  End
  Else
    xmlDoc.loadXML(fAppPath + DATABASE_FNAME);
aber jedes mal wenn ich das programm beende fehlt die datei...
auch wenn ich in denn ordner schau während das programm läuft seh ich dort keine xml datei...

xaromz 29. Jun 2007 11:45

Re: Probleme mit XML Verarbeitung(Anzeige / XML Datei speich
 
Hallo,

weshalb sollte "LoadXML" eine Datei erstellen? Schon mal daran gedacht, "Save" zu verwenden?

Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz