AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Problem mit XML Turtoial von Chack

Problem mit XML Turtoial von Chack

Ein Thema von citybreaker · begonnen am 3. Apr 2004 · letzter Beitrag vom 23. Apr 2004
 
citybreaker
(Gast)

n/a Beiträge
 
#1

Problem mit XML Turtoial von Chack

  Alt 3. Apr 2004, 21:02
So hier der 3. Thread zu dem Tutorial.
Ich meine XML Datei folgendermaßen aufgebaut.

movies.xml
<?xml version="1.0" encoding="ISO-8895-1"?>
<movieorganiezer>
<movie>
<id>1</id>
<name>Der Schuh des Manitu</name>
<format>DVD</format>
<ton>DD5.1</ton>
</movie>
</movieorganiezer>

Und dann noch folgende Source.
Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, Menus, msxml2_tlb;

type
  TMainFrm = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Beenden1: TMenuItem;
    Film1: TMenuItem;
    Hinzufgen1: TMenuItem;
    Entfernen1: TMenuItem;
    N1: TMenuItem;
    Bearbeiten1: TMenuItem;
    N2: TMenuItem;
    Info1: TMenuItem;
    StatusBar1: TStatusBar;
    MovieList: TListView;
    procedure FormCreate(Sender: TObject);
    procedure UpdateList;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    fAppPath: string;
  end;

const
  DATABASE_FNAME ='movies.xml';
var
  MainFrm: TMainFrm;
  xmlDoc: IXMLDOMDocument2;

implementation

{$R *.DFM}

procedure TMainFrm.FormCreate(Sender: TObject);
begin
  fAppPath := ExtractFilePath(Application.Exename);
  XmlDoc := CoDomDocument40.Create;
  XmlDoc.SetProperty('NewParser', true);
  if not FileExists(fAppPath + DATABASE_FNAME) then begin
    XmlDoc.loadXml('<?xml version="1.0"?><movieorganiezer></movieorganiezer>');
  end else
    XmlDoc.load(fAppPath + DATABASE_FNAME);
  if XmlDoc.parseError.errorCode <> 0 then begin
    MessageDlg('Die XML Datei ist nicht korrekt!' + #13#10
              +'Das Programm wird nun beenden!', mtError, [MbOk], 0);
    Application.Terminate;
  end;
  if XmlDoc.documentElement.nodeName <> 'movieorganiezerthen
    Application.Terminate;
end;

procedure TMainFrm.UpdateList;
const
  NAMES: array[0..2] of string = ('name', 'format', 'ton');
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;
end.
Jetzt kommt beim Start immer die Fehlermeldung mit "nicht korrekter Xml Datei"
Woran liegt das? Hab die Datei im selben Ordner wie die Exe.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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 by Thomas Breitkreuz