simplexml_load_file
(PHP 5, PHP 7)
simplexml_load_file — XMLファイルをパースし、オブジェクトに代入する
説明
simplexml_load_file
( string $filename
[, string $class_name
= "SimpleXMLElement"
[, int $options
= 0
[, string $ns
= ""
[, bool $is_prefix
= false
]]]] ) : SimpleXMLElement|false
指定したファイルの中の整形式 XML ドキュメントをオブジェクトに変換します。
パラメータ
filename
XML ファイルへのパス。
注意:
Libxml 2 は URI をエスケープしませんので、例えば URI パラメータ
a
にb&c
を渡したい場合、simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c')))
をしてコールする必要があります。PHP 5.1.0 以降では、これをする必要は ありません。PHP が自動的に行います。class_name
simplexml_load_file() が指定されたクラスのオブジェクトを返すようにするために、 このオプションのパラメータを使用します。 このクラスは、SimpleXMLElement クラスを継承していなければなりません。
options
PHP 5.1.0 と Libxml 2.6.0 から、追加の Libxml パラメータ を指定するために
options
を使用することもできます。ns
名前空間プレフィックスあるいは URI。
is_prefix
ns
がプレフィックスである場合にtrue
、 URI である場合にfalse
。デフォルトはfalse
です。
返り値
SimpleXMLElement クラスのオブジェクトを返します。
XML ドキュメント内のデータをプロパティに含みます。
失敗した場合に false
を返します。
エラー / 例外
XML データ内でエラーが見つかるたびに E_WARNING
エラーメッセージが発生します。
ヒント libxml_use_internal_errors() ですべての XML エラーを抑制し、 後から libxml_get_errors() で取得することもできます。
変更履歴
バージョン | 説明 |
---|---|
5.2.0 | オプションの引数 is_prefix が追加されました。
|
例
例1 XMLドキュメントをパースする
<?php// The file test.xml contains an XML document with a root element// and at least an element /[root]/title.if (file_exists('test.xml')) { $xml = simplexml_load_file('test.xml'); print_r($xml);} else { exit('Failed to open test.xml.');}?>
このスクリプトは成功時に以下のように出力します。
SimpleXMLElement Object ( [title] => Example Title ... )
この時点で、$xml->title
としたり、
他の全ての要素にアクセスすることができます。
参考
- simplexml_load_string() - XML 文字列をオブジェクトに代入する
- SimpleXMLElement::__construct() - 新しい SimpleXMLElement オブジェクトを作成する
- XML エラーの対応
- libxml_use_internal_errors() - libxmlエラーを無効にし、ユーザーが必要に応じてエラー情報を取得できるようにする
- 基本的な SimpleXML の使用法