問題

SAXパーサを介した作業XMLですが、XMLファイルを解析すると、次のエラーメッセージが表示されます。

org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
   //...

解決策

このエラーメッセージは、常に最初の要素の無効なXMLコンテンツによって発生します。たとえば、XML要素の冒頭に小さなドット「。」が付いています。



<?xml …​.

“の前の文字は、上記の ”

org.xml.sax.SAXParseException:プロローグでコンテンツが許可されていない

“というエラーメッセージが表示されます。

“<?xml …​.”の前の小さなドット “。”

.<?xml version="1.0"?>
<company>
    <staff>
        <firstname>yong</firstname>
        <lastname>mook kim</lastname>
        <nickname>mkyong</nickname>
        <salary>100000</salary>
    </staff>
    <staff>
        <firstname>low</firstname>
        <lastname>yin fong</lastname>
        <nickname>fong fong</nickname>
        <salary>200000</salary>
    </staff>
</company>

これを修正するには、「

<?xml

」の前にそれらの奇妙な文字をすべて削除してください。