Problem mit ReadXMLFile

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

Problem mit ReadXMLFile

Beitrag von niederrheiner »

Hallo an Alle,

aus dem XML Tutorial der lazarus Wiki habe ich folgendes ausprobiert

Code: Alles auswählen

var
  PassNode: TDOMNode;
  Doc:      TXMLDocument;
 begin
  // Einlesen der xml Datei
  ReadXMLFile(Doc, 'c:\xmlfiles\test.xml');
  // Abrufen des "password" Knotens
  PassNode := Doc.DocumentElement.FindNode('password');
  // Ausgeben des Wertes des gewählten Knotens
  WriteLn(PassNode.NodeValue); // wird leer sein
  // Der Text des Knotens ist ein separater Kindknoten
  WriteLn(PassNode.FirstChild.NodeValue); // gibt "abc" korrekt aus


Die Testdatei hatte folgenden Inhalt:

Code: Alles auswählen

<?xml version="1.0"?>
 <request>
   <request_type>PUT_FILE</request_type>
   <username>123</username>
   <password>abc</password>
 </request>


Starte ich das Programm, so erscheint folgende Fehlermeldung:

Code: Alles auswählen

Project raised exeption class XMLREADERROR with message:
In file 'test.xml' (line 1 pos 4) : XML declaration is not allowed here


Nun das merkwürdige:
lösche ich die erste Zeile und starte das Programm neu, erscheint die gleiche Meldung.
Lösche ich den kompletten Inhalt der Datei, erscheint ebenfalls die gleiche Meldung. Hier hätte ich aber eine Fehlermeldung über eine leere Datei erwartet.

Besteht diese Funktion nur aus dieser Fehlermeldung? :D

Jetzt ernsthaft, weiß jemand von Euch woran es liegen kann?

Ich habe die Lazarusversion 0.9.26 Beta und Freepascal 2.2.2

Danke für Eure Hilfe und Tipps

MfG
Günter

marcov
Beiträge: 1073
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Problem mit ReadXMLFile

Beitrag von marcov »

Prints "bla" hier. Mit 2.3.1. Ich nutze "uses dom,xmlread;". Ich sage das weil es zwei Versionen von die XML units gibt. Laz_* (Lazarus version, UTF-8?) und ohne Laz_ (FPC, widestring)

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

Re: Problem mit ReadXMLFile

Beitrag von thomas55 »

Acht Jahre und Neun Monate später, inzwischen Lazarus 1.6, ist der von Niederrheiner beschriebene Fehler immer noch genau so vorhanden. Bisher war ich der Hoffnung daß es um Lazarus etwas besser steht als um Java. Falsch gedacht. Schade.

wp_xyz
Beiträge: 3306
Registriert: Fr 8. Apr 2011, 09:01

Re: Problem mit ReadXMLFile

Beitrag von wp_xyz »

Kein Grund für sarkastische Bemerkungen. Was hast du denn gemacht?

Wenn ich mich auf den 1.Post beziehe, sehe ich drei Fehlerbeschreibungen:

  • "Öffnen der genannten xml-Datei in dem angegebenen Programm: --> Fehlermeldung wegen unerlaubter XML-Deklaration"
    Das kann ich nicht bestätigen, nachdem die bereits von Marco vorgeschlagenen Units aufgeführt sind (aber ohne diese würde das Programm schon nicht mal den Compiler passieren).
  • "Dieselbe Fehlermeldung erscheint nach dem Löschen der 1.Zeile"
    Nein. Diese verstümmelte XML-Datei wird klaglos eingelesen
  • "Dieselbe Fehlermeldung nach dem Löschen des gesamten Dateiinhalts"
    Nein. Hier kommt die Meldung, dass dass das Root-Element nicht gefunden wird.
Also dass "acht Jahr und neun Monate später, inzwischen Lazarus 1.6" der beschriebenen Fehler immer noch genauso vorhanden ist. kann ich nicht bestätigen. Ich glaube eher, dass hier zwei Benutzer denselben Fehler machen, den ich ohne weitere Angaben aber nicht finden kann.

Mathias
Beiträge: 5031
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem mit ReadXMLFile

Beitrag von Mathias »

Bisher war ich der Hoffnung daß es um Lazarus etwas besser steht als um Java. Falsch gedacht. Schade.

Dann nimm doch Java, wen du diesen Schrott besser findest.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4223
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Problem mit ReadXMLFile

Beitrag von af0815 »

thomas55 hat geschrieben:Schade.

Wo ist der Fehler ? Hast du es nachgeprüft -> Nein -> Schade

Anbei das Testprogramm das OHNE Probleme durchläuft und abc ausgibt.
Dateianhänge
xml.zip
Testprojekt aus den XML Tutorial der Lazwiki
(2.51 KiB) 17-mal heruntergeladen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4223
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Problem mit ReadXMLFile

Beitrag von af0815 »

Ach ja, noch nen Bildschirmfoto, falls der thomas55 das zip nicht aufkriegt.
Bild vom Lauf des xml Tests
Bild vom Lauf des xml Tests
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

thomas55
Beiträge: 12
Registriert: So 25. Sep 2016, 14:24
OS, Lazarus, FPC: Win7 (L 1.6.xy FPC 3.0.0)
CPU-Target: 64Bit
Wohnort: Berlin, Wetterseite

Re: Problem mit ReadXMLFile

Beitrag von thomas55 »

Danke für die Antworten.

Bei mir ist der Fehler so aufgetreten:
In dem Tutorial habe ich die .xml - Datei kopert (^C) und mit 'Editor' die .xml erzeugt. Dabei wird an erster Stelle in der neuen Datei ein Space gesetzt. Das führt zu dem beschriebenen Fehler.

Möglicherweise habe ich eine falsche Ansicht wenn ich denke daß in einer Skriptsprache ein Leerzeichen keinen Fehler verursachen sollte. Vielleicht ist es auch so gewollt und ich verstehe nicht genug davon. Das ist nicht unmöglich. Na ja, am Ende tritt dies zufällig nur alle 9 Jahre auf... Da tut es mir leid dies nochmal aufgewärmt zu haben.

Danke nochmal und viele Grüße aus dem sonnigen Berlin
Thomas

wp_xyz
Beiträge: 3306
Registriert: Fr 8. Apr 2011, 09:01

Re: Problem mit ReadXMLFile

Beitrag von wp_xyz »

thomas55 hat geschrieben:Dabei wird an erster Stelle in der neuen Datei ein Space gesetzt. Das führt zu dem beschriebenen Fehler.

OK, das ist jetzt sehr konkret, und ich kann bestätigen, dass eine xml-Datei mit einem Space vor <?xml mit ReadXML den genannten Fehler bewirkt. Aber auch Microsoft Edge und Firefox können diese Datei nicht öffnen. Daher denke ich, dass das Teil des XML-Standards ist, dass sich also nichts vor dem <?xml befinden darf. Vielleicht kann das auch einer der XML-Spezialisten hier im Forum bestätigen.

Antworten