XMLファイルをパースし、オブジェクトに代入する

# 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

指定したファイルの中の整形式 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` を返します。

警告

この関数は論理値 `FALSE` を返す可能性がありますが、`FALSE` として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

### エラー / 例外

XML データ内でエラーが見つかるたびに `E_WARNING` エラーメッセージが発生します。

ヒント

libxml_use_internal_errors() ですべての XML エラーを抑制し、 後から libxml_get_errors() で取得することもできます。

### 例

例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 の使用法