Other

「Extra content at the end of the document」XMLサイトマップのエラーを解決する方法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

⇨ Laravel 記事の目次はこちら

エラーの内容

バッチ処理で作成しているサイトマップが

error on line 23 at column 19: Extra content at the end of the document

というエラーを出していました。

エラー原因

  1. 閉じタグが欠落している
  2. XML ドキュメントが正しく形成されていない
  3. XML ドキュメントに余分なテキストが含まれている

エラーの原因としては以上の3つが考えられます。

今回の事例では、閉じタグが欠落していた

今回は、XML ファイルの「閉じタグがない」ことによるエラーでした。

僕のケースでは、

バッチ処理の途中でエラーが起きて、XML を書き出している最中に、止まっていた

ようです。

今回の事例(エラー)の状態

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url></url>

urlset の閉じタグがありませんでした。

今回の事例(エラー)の解決方法

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url></url>
</urlset>

閉じタグを付け加えてたらエラーは消えました。

②XML ドキュメント通り正しいフォーマットで形成されていない

XML は、クローラーなどのプログラムが決められたフォーマットで書かれた XML ファイルを読み取ることが多いです。

その「決められたフォーマット」どおりに書かれていないとこのエラーが発生します。

ドキュメントを再確認し、必要な要素や属性が正しく追加されていることを確認してみてください。

③XML に余分なテキストが含まれている

XML に余分なテキストが含まれている場合にも、このエラーメッセージが表示されます。

XML 内に含まれるテキストを確認し、XML 要素や属性の外側にある場合は、削除するか適切なタグで囲むことが必要です。

まとめ

以上です。

誰かの参考になればと思います。

感想・苦情は TwitterDM にご連絡ください。

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する