PHPエラー対処方法「simplexml_load_file」&「simplexml_load_string」

xml_error
PHP simplexml_load_fileを使用して「I/O warning : failed to load external entity」というエラーと、
PHP simplexml_load_stringを使用して「Entity: line 1: parser error : Start tag expected, ‘<’ not found」というエラーについての対処方法です。

SPONSORED LINK

PHP simplexml_load_fileエラー「I/O warning failed to load」対処方法

simplexml_load_fileはファイルの読み込み

simplexml_load_fileを利用して文字列を読み込もうとしていませんか?
それではエラーが出てしまいますので、文字列を読み込む関数を利用します。

1.simplexml_load_fileではなく、simplexml_load_stringと、file_get_contentsを利用する。

不適切な場所にダブルクォート

ファイルの読み込み時にダブルクォートによってエラーが出る場合があります。
読み込み元と読込先の文字コードなど意外な落とし穴もありますので、もう一度記述を再確認します。

2.simplexml_load_fileまでの記述で「」(ダブルクォート)の扱いを見直す。

厄介なのは読み込み先のエラー

自分の管理下にないファイルだった場合は、お手上げなのが、読込先のファイル自体の記述ミスです。
主にファイルのメタ情報を記述するヘッダ部分に致命的なミスコードがあると、このエラーを出す場合もありますので、確認が必要です。

3.エラーを吐くxml自体のヘッダや記述の間違い。

PHP simplexml_load_stringエラー 「Entity: line 1: parser error : Start tag expected, ‘<' not found」対処方法

PHPでxmlを扱う為にsimplexml_load_stringを利用した時の
「Entity: line 1: parser error : Start tag expected, ‘<’ not found」
というエラーの対処方法メモ

原因はxml文字列として読み込まれていない

つまり、指定変数などにxmlが格納されていない場合です。

xmlが記述されたファイルを指定している場合に多い

xmlのファイルを読み込もうとしていませんか?
simplexml_load_stringでは、ファイルを読み込めません。

simplexml_load_stringエラー対処方法

NG例

$xml = simplexml_load_string("$path");

OK例

$xml = simplexml_load_string(file_get_contents("$path"));

file_get_contentsでまずファイルを読み込むことで解決

PHPをまるで翼(ウイング)が生えたようにコーディングできる日はくるのでしょうか。日々精進です。

まとめ

simplexml_load_fileやimplexml_load_stringを使えば驚くほど簡単にxmlファイルを処理できますが、呼び出し時のコーディングに注意するだけでなく、読み込み先のファイルの整合性もきちんと把握しておく必要がありますので、エラー分岐をきちんと当てておくことが重要ですね。

今日も知識欲は止まらない。

関連トピック

Yahoo!デベロッパーネットワーク「Your Request was Forbidden」エラーの対処方法

Yahoo!デベロッパーネットワークのWeb APIで「Your Request was Forbidden」のエラーが返る場合に確認す

Yahoo!デベロッパーネットワークAPI 画像検索

検索API提供終了 有料版を含む検索APIが終了してしまいました・・・。 APIを利用したウェブアプリケーションのリスクですね。

MySQL intレコードにランダム整数を一括挿入してみた

MySQLのテーブル hoge の intカラム test に10までの整数をランダムに挿入してみました。 範囲指定や上限の変更も簡単

PHPで画像ダウンロードのボタンでリンクする方法

PHPを利用して画像をダウンロードさせるボタンを作成する方法メモです。 リンクボタンをクリックすると保存ダイアログが表示されて、ダウン

PHPエラー対処法 First argument should be an array

[code] First argument should be an array [/code] このエラーは、 最初の引数

PHPでランダムに範囲内から重複しない数字を取り出す

1.とりあえず一つだけランダムで抜き出す。 [code] $num= mt_rand(1,100); [/code] 1から

FacebookのRSSを取得する方法@Facobook API JSON対応

FacebookのRSSを取得する方法メモです。Facebookでは大規模な仕様変更が何度も行われて、古い情報ではRSSの取得ができない

PHPエラー対処方法「 Warning: Missing argument 1 for」

PHPにおけるPHP Warning: Missing argument 1 for... というエラーの原因と対処方法メモです。

Comment

  1. Roy より:

    ずっと、悩んでたんですが、これでうまくいきました。
    ありがとうございました。

公開日:2009/02/22