JavaでXMLファイルを読み取って、それをそのXMLスキーマと比較しようとしていますが、このエラーを回避できません。
[致命的エラー]:1:1:コンテンツはプロローグで許可されていません。org.xml.sax.SAXParseException; lineNumber:1; columnNumber:1; コンテンツはプロローグで許可されていません。
これがファイル読み込みの始まりです
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(new StringReader("myfile.xml"))); // ERROR OCCURS HERE
HEXエディターを使用してXMLをスキャンしましたが、内部に奇妙な文字が見つからなかったため、問題の場所がわかりません
myfile.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Schedule xmlns ="schedule"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schedule.xsd">
<Lesson>
<Title>Artificial Intelligence</Title>
<Lecture Classroom="BA">
<Day>Wednesday</Day>
<Time>09-11</Time>
</Lecture>
<Professor>Hatzilygeroudis</Professor>
</Lesson>
<Lesson>
<Title>Constraint Satisfaction Problems</Title>
<Lecture Classroom="B3">
<Day>Monday</Day>
<Time>19-21</Time>
</Lecture>
</Lesson>
<Lesson>
<Title>Knowledge Representation in Web</Title>
<Lecture Classroom="P200">
<Day>Friday</Day>
<Time>15-17</Time>
</Lecture>
<Professor>Hatzilygeroudis</Professor>
</Lesson>
<Lesson>
<Title>Artificial Intelligence</Title>
<Lecture>
<Day>Monday</Day>
<Time>19-21</Time>
</Lecture>
</Lesson>
<Lesson>
<Title>AI Programming</Title>
<Lecture Classroom="B3">
<Day>Monday</Day>
<Time>11-13</Time>
</Lecture>
</Lesson>
<Lesson>
<Title>Introduction to Procedural Programming</Title>
<Lecture Classroom="P200">
<Day>Wednesday</Day>
<Time>15-17</Time>
</Lecture>
<Professor>Papadopoulos</Professor>
</Lesson>
</Schedule>
StringReader("myfile.xml")
ファイル名ではなく、XMLでなければならない文字列引数を取ります。XMLドキュメントが文字で始まっていない可能性があるため、パーサーは文字列リテラルmyfile.xml
(のファイルコンテンツではないmyfile.xml
)を読み取っていて、すぐに失敗しますm
。
変化する
Document doc = dBuilder.parse(new InputSource(new StringReader("myfile.xml")));
に
Document doc = dBuilder.parse(new InputSource("myfile.xml"));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加