Hallo,
ich weiß, dass diese Fehlermeldung schon einmal hier aufgetaucht ist (und in etlichen anderen Foren auch), aber die Lösungsvorschläge funktionieren für mich nicht.
Mein XMLReader spuckt beim Aufruf der "parse"-Methode folgende Fehlermeldung aus:
Laut Internet sei dies darauf zurückzuführen, dass meine XML fehlerhafte Zeichen im Header enthält, was aber nicht der Fall ist:
(der Space am Anfang ist durch die Formatierung entstanden. In der XML-File ist am Anfang kein Space vorhanden. Das erste Zeichen ist ein <).
Ferner war eine Fehlerquelle, dass der Dateipfad falsch ist. Dies trifft aber auch nicht zu, da ich testeshalber mit dem übergebenen Dateipfad einen OutputStream geschrieben habe, der innerhalb der gleichen Methode den Inhalt der XML per System.out.print ausgibt. Im Zuge dieses Aufrufs wird die XML korrekt dargestellt, womit der Dateipfad korrekt sein muss (anderenfalls gäbe es ja einen Error).
Das wäre der gesammte Methodenaufruf:
Ideen?
ich weiß, dass diese Fehlermeldung schon einmal hier aufgetaucht ist (und in etlichen anderen Foren auch), aber die Lösungsvorschläge funktionieren für mich nicht.
Mein XMLReader spuckt beim Aufruf der "parse"-Methode folgende Fehlermeldung aus:
Code:
run:
D:\test.xml
[Fatal Error] :1:1: Content ist nicht zulässig in Prolog.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at xmltest.XMLtest.main(XMLtest.java:48)
BUILD SUCCESSFUL (total time: 0 seconds)
XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<commands>
<command>
<name>end</name>
<id>0x0</id>
</command>
<command>
<name>start</name>
<id>0x1</id>
<params>
<param>0xFFEF0000</param>
<param>0xFF</param>
</params>
</command>
</commands>
Ferner war eine Fehlerquelle, dass der Dateipfad falsch ist. Dies trifft aber auch nicht zu, da ich testeshalber mit dem übergebenen Dateipfad einen OutputStream geschrieben habe, der innerhalb der gleichen Methode den Inhalt der XML per System.out.print ausgibt. Im Zuge dieses Aufrufs wird die XML korrekt dargestellt, womit der Dateipfad korrekt sein muss (anderenfalls gäbe es ja einen Error).
Das wäre der gesammte Methodenaufruf:
Java:
public static void main(String[] args) {
try{
//Erzeugen des Parsers
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
Handler h = new Handler();
reader.setContentHandler(h);
char[] chars = new char[30];
java.io.FileReader filereader = new java.io.FileReader(args[0]);
filereader.read(chars, 0x0, 30);
for (char c : chars){
System.out.println(c);
}
InputSource i = new InputSource(new StringReader(args[0]));
reader.parse(i);
ArrayList<Command> result = h.retrieveCommandList();
for (Command c : result){
c.print();
}
}catch(Exception e){e.printStackTrace();}
Ideen?
Zuletzt bearbeitet von einem Moderator: