AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Only one top level element is allowed in an XML document ??
Thema durchsuchen
Ansicht
Themen-Optionen

Only one top level element is allowed in an XML document ??

Ein Thema von Skyruner2 · begonnen am 19. Jun 2004 · letzter Beitrag vom 23. Jun 2004
Antwort Antwort
Skyruner2

Registriert seit: 26. Okt 2003
93 Beiträge
 
Delphi 7 Professional
 
#1

Only one top level element is allowed in an XML document ??

  Alt 19. Jun 2004, 20:40
habe folgende fehlernachricht:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt MakeItReal.exe ist eine Exception der Klasse EOleException aufgetreten. Meldung: 'Only one top level element is allowed in an XML document'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Delphi-Quellcode:
  filename:=ExtractFilePath(Paramstr(0))+'settings.xml';
  if not(XMLsettings.FileName=filename) then
    XMLsettings.FileName:=filename;

  main.XMLsettings.Active:=true;

{....
hier -->}
 xml:=xmlsettings.ChildNodes.Nodes['Makeitreal_settings'].ChildNodes.FindNode('AppSettings');
            xml.ChildNodes.Nodes['SiberianTime'].NodeValue:=stosettings.Time.Setting;
            xml.ChildNodes.Nodes['WeatherMode'].NodeValue:=stosettings.Weather.Setting;
            {..... more of the above}

          // save
          xmlsettings.SaveToFile(filename);
ich muss sagen dies ist die erste app die ich mit XML mache.

in einem anderen unit:

Delphi-Quellcode:
weathernode:=Main.XMLsettings.ChildNodes.Nodes['MakeItReal_settings'].ChildNodes.FindNode('WeatherStates');

....weathernode.ChildNodes.Nodes[i].Attributes['RUS_ANSI']
hab ich KEINE probleme...


warum also die fehler meldung in dem ersten code?


uff... schon 12 stunden nur am ich mach mir estmal was zu essen...
Angehängte Dateien
Dateityp: xml settings.xml (1,6 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Only one top level element is allowed in an XML document

  Alt 19. Jun 2004, 20:58
Die Frage wäre, wie deine XML-Datei aussieht, denn die Fehlermeldung besagt doch IMHO, dass es nur einen obersten Knoten geben darf ... Was ja auch logisch ist, und ich gehe mal davon aus, dass dir das XML-Format bekannt ist.

Edit: Ah, ich sehe schon, die Datei ist eigentlich in Ordnung. Hm, komisch ...
  Mit Zitat antworten Zitat
Skyruner2

Registriert seit: 26. Okt 2003
93 Beiträge
 
Delphi 7 Professional
 
#3

Re: Only one top level element is allowed in an XML document

  Alt 19. Jun 2004, 22:52
ich benutze da MS XML notepad. ich denke es wird keine fehler machen.... aber man weis nie...


hmm werd ich wohl bis morgen warten müssen....
  Mit Zitat antworten Zitat
Skyruner2

Registriert seit: 26. Okt 2003
93 Beiträge
 
Delphi 7 Professional
 
#4

Re: Only one top level element is allowed in an XML document

  Alt 21. Jun 2004, 14:25
ich habe immer noch keine lösung gefunden..

könnt ihr nicht nochmal sehen?
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#5

Re: Only one top level element is allowed in an XML document

  Alt 21. Jun 2004, 16:30
Also ich habe es eben mit MS XML ausprobiert, keine Fehler. Auch Mozilla liefert keine Fehlermeldung beim Parsen.
Allerdings scheinst du da ja auch irgendeine andere Klasse zu benutzen.
  Mit Zitat antworten Zitat
Skyruner2

Registriert seit: 26. Okt 2003
93 Beiträge
 
Delphi 7 Professional
 
#6

Re: Only one top level element is allowed in an XML document

  Alt 21. Jun 2004, 16:47
ich benutze die XMLdokument komponente...
  Mit Zitat antworten Zitat
Skyruner2

Registriert seit: 26. Okt 2003
93 Beiträge
 
Delphi 7 Professional
 
#7

Re: Only one top level element is allowed in an XML document

  Alt 23. Jun 2004, 17:56
die lösung via experts-exchange.com :


Zitat von Workshop_Alex @ Experts-exchange.com:
First of all, download XMLSpy from http://xmlspy.com/ since it's a real useful tool. If you can afford it, buy the professional version...

I checked your XML file and it seems to be okay. However, the line:
<?xml version="1.0" encoding="UTF-8"?>
Seems to be missing. Not a real problem, though.

Be aware that you can only have one top level node in an XML file. Thus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<MakeItReal_settings>
  <Bla/>
</MakeItReal_settings>
<MakeItReal_settings>
  <Bla/>
</MakeItReal_settings>
This would be illegal since you have two MakeItReal_settings root nodes. Furthermore, XML is case-sensitive thus MakeItReal_settings and makeitreal_settings are two different nodes. But you probably know this already.

No, wait. You forgot about the case-sensitivity...

xml:=xmlsettings.ChildNodes.Nodes['Makeitreal_settings'].ChildNodes.FindNode('AppSettings');
weathernode:=Main.XMLsettings.ChildNodes.Nodes['MakeItReal_settings'].ChildNodes.FindNode('WeatherStates');

You spelled it Makeitreal_settings and MakeItReal_settings which explains your error. It tries to create a new root node called MakeItReal_settings which of course isn't allowed.

Oops...
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz