Fehlermeldung: "Content is not allowed in prolog"

G

Gast2

Gast
Moin!

Ich versuche ins XML parsen einzusteigen und komme nicht sehr weit.
Mit "Java ist auch eine Insel" habe ich ein Progrämmchen geschreiben.
Das sieht so aus:
Java:
import java.io.File;
import javax.xml.parsers.*;
import org.w3c.dom.Document;

public class Test {
	public static void main(String[] args) throws Exception
	  {
	    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	    DocumentBuilder builder = factory.newDocumentBuilder();
	    File file = new File("party.xml");
	    Document document = builder.parse(file);
	    System.out.println(document.getFirstChild().getTextContent());
	  }
}

Bekomme aber leider nur die Fehlermeldung:
[Fatal Error] party.xml:1:1: Content is not allowed in prolog.
Exception in thread "main" org.xml.sax.SAXParseException: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at testen.Test.main(Test.java:18)

Zeile 18 ist:
Java:
Document document = builder.parse(file);

Was bedeutet: "Content is not allowed in prolog"? ???:L

Und wie bekomme ich den Code zum laufen? ???:L

Frank
 
M

maki

Gast
Den Kommentar nach der XMl decleration anstatt davor einfügen.

Also, anstatt
[xml]<!-- Kommentartext wie zB. Lizenzinformationen.. -->
<?xml version="1.0" encoding="UTF-8" ?>
...
[/xml]
das hier:
[xml]
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Kommentartext wie zB. Lizenzinformationen.. -->
...
[/xml]
 
G

Gast2

Gast
Dann zeig doch mal die ersten Zeilen deiner XML-Datei.

[XML]<?xml version="1.0" ?>
<party datum="31.12.01">
<gast name="Albert Angsthase">
<getraenk>Wein</getraenk>
<getraenk>Bier</getraenk>
<zustand ledig="true" nuechtern="false"/>
</gast>...

...<gast name="Zacharias Zottelig"></gast>
</party>[/XML]

Das sind (fast) alle Zeilen.
 

tfa

Top Contributor
Sieht korrekt aus. Vielleicht stimmt was mit dem Datei-Encoding nicht. Was verwendest du?
Der Parser sagt, dass schon das erste Zeichen in Zeile 1 nicht korrekt ist.
 
G

Gast2

Gast
Benutze lieber kein Wordpad.

Ich habe es im Windows Editor gesteckt und gespeichert und jetzt funktioniert's! :D
Ich danke Euch, besonders natürlich tfa. :applaus:

Aber es gab ja zwei Fragen.
Die zweite Frage war:
Was bedeutet: Content is not allowed in prolog ? ???:L

(Ist ja auch der Titel des Themas. Und für's nächste mal...)

Frank
 

Tobias

Top Contributor
[XML]<?xml version="1.0" ?>[/XML]

Diese Zeile ist der Prolog des Dokuments. Er muss immer ganz am Anfang der Datei stehen - ohne irgendwelche (nicht sichtbaren) Steuerzeichen davor.
 
M

maki

Gast
[XML]<?xml version="1.0" ?>[/XML]

Diese Zeile ist der Prolog des Dokuments. Er muss immer ganz am Anfang der Datei stehen - ohne irgendwelche (nicht sichtbaren) Steuerzeichen davor.
hi Tobias,

das stimmt leider nicht.

Was du da zeigst ist die sog. "XML decleration", der Prolog kommt davor.
 

Ähnliche Java Themen


Oben