xml-Deklaration darf nur am Anfang des Dokuments
Ich versuche zu Lesen eine xml-Datei von der jsp-Datei. Sie sind beide unter dem gleichen Verzeichnis und ich bin mit BufferReader zu Lesen aus der xml-Datei.
ich bin immer der Fehler "Fehler in Zeile 3 in Spalte 6: xml-Deklaration darf nur am Anfang des Dokuments ". der web-Suche für den Grund und alles, was ich bekam, war, dass die xml-Datei sollte nicht beginnen eine neue Zeile , aber ich habe meine xml löschen alle Leerzeichen am Anfang.
dies ist der einzige xml-Datei in meinem Programm, damit ich dont wirklich wissen, was das problem sein könnte.
Ich bin hinzufügen meine xml Datei und meine jsp-Datei.. ich bin probebly, etwas falsch zu machen, aber ich weiß nur nicht, was.
meine xml-Datei :
<?xml version="1.0"encoding="UTF-8"?>
<quiz>
<question type="multichoice" >
<name>
<text>Name of question</text>
</name>
<questiontext format="html">
<text>What is the answer to this question?</text>
</questiontext>
<answer fraction="100">
<text>The correct answer</text>
<feedback><text>Correct!</text></feedback>
</answer>
<answer fraction="0">
<text>A distractor</text>
<feedback><text>Ooops!</text></feedback>
</answer>
<answer fraction="0">
<text>Another distractor</text>
<feedback><text>Ooops!</text></feedback>
</answer>
<shuffleanswers>1</shuffleanswers>
<single>true</single>
<answernumbering>abc</answernumbering>
</question>
<question type="truefalse">
<name>
<text>Name of question</text>
</name>
<questiontext format="html">
<text>What is the answer to this question?</text>
</questiontext>
<answer fraction="100">
<text>true</text>
<feedback><text>Correct!</text></feedback>
</answer>
<answer fraction="0">
<text>false</text>
<feedback><text>Ooops!</text></feedback>
</answer>
</question>
<question type="numerical">
<name>
<text>Name of question</text>
</name>
<questiontext format="html">
<text>What is the answer to this question?</text>
</questiontext>
<answer fraction="100">
<text>23</text>
<feedback><text>Feedback</text></feedback>
</answer>
</question>
</quiz>
gibt es keinen Leerraum vor der definition von xml ( erste Zeile in der Datei).
und meine jsp-Datei :
<%@ page contentType="text/xml" %>
<%@ page import="java.io.*" %>
<%
//dump out the file
BufferedReader in = new BufferedReader(new FileReader("questions.xml"));
String line;
while((line = in.readLine())!=null){
out.print(line);
}
in.close();
%>
Ich bin neu in der Programmierung in html mit java, also wird es groß sein, wenn Sie mir helfen können.. danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie sehen, dass Fehler im browser, wenn Sie navigieren Sie zu der JSP-Seite. Das problem ist in der page-Direktiven am Anfang der JSP
Da jeder dieser wird gefolgt von einem Zeilenumbruch werden Sie am Ende mit zwei Zeilenumbrüchen geschrieben
out
bevor die Daten (geschrieben von derout.println
Aussagen), das ist der Grund, warum die Fehlermeldung sagt, Sie haben eine XML-Deklaration in Zeile 3.Entfernen der Zeilenumbrüche, oder verschieben Sie Sie in den Richtlinien eher als zwischen Ihnen sollte das problem lösen:
Als ein beiseite, die für das Lesen der Datei, sollten Sie wahrscheinlich verwenden einen
FileInputStream
(oder besserapplication.getResourceAsStream
) und eineInputStreamReader
explizit auf die korrekte Zeichencodierung entsprechen der XML-Datei, anstatt verlassen sich aufFileReader
die verwendet immer die Standard-Plattform-Codierung.Können Sie fügen Sie die folgende Zeile am Anfang des Dokuments:
Dies sollte Ihr Problem beheben.
Kann es problem mit der xml-Datei, überprüfen Sie, ob es enthält, Byte order mark, wenn ja, entfernen Sie es.
Sie können einfache Notepad++, um es zu entfernen, die durch Bearbeiten und überprüfen der Textformatierung UTF-8 ohne BOM
http://en.wikipedia.org/wiki/Byte_order_mark
Ändern:
zu
Haben Sie vergessen, fügen Sie ein Leerzeichen zwischen
"1.0"
undencoding
.