SAXエラー - コンテンツはプロローグで許可されていません

問題

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 」の前にそれらの奇妙な文字をすべて削除してください。