PHP simplexml_load_file() 関数

❮ PHP SimpleXML リファレンス

XMLファイルをSimpleXMLElementオブジェクトに変換し、オブジェクトのキーと要素を出力します:

<?php
$xml=simplexml_load_file("note.xml");
print_r($xml);
?>
例の実行 »

定義と用法

simplexml_load_file() 関数は、指定したXMLファイルをSimpleXMLElementオブジェクトに変換します。


構文

simplexml_load_file(file,classname,options,ns,is_prefix);

パラメータ 説明
file 必須。XML ファイルへのパスを指定する
classname 任意。新しいオブジェクトのクラスを指定する
options 任意。追加のLibxmlパラメータを指定する。オプションと 1 または 0 を指定して設定する(TRUEまたはFALSEにする。例えば LIBXML_NOBLANKS(1))

指定可能な値:

  • LIBXML_COMPACT - ノード割り当ての最適化を有効にする(アプリケーションを高速化できる)
  • LIBXML_DTDATTR - デフォルトのDTD属性を設定する
  • LIBXML_DTDLOAD - 外部サブセットをロードする
  • LIBXML_DTDVALID - DTDを使用して検証する
  • LIBXML_NOBLANKS - 空のノードを削除する
  • LIBXML_NOCDATA - テキストノードとしてCDATAをマージする
  • LIBXML_NOEMPTYTAG - 空タグを拡張する(例えば、<br/> を <br></br> にする)。これは、DOMDocument->save() および DOMDocument->saveXML() 関数のみで使用できる。
  • LIBXML_NOENT - エンティティを置換
  • LIBXML_NOERROR - エラー出力を抑制する
  • LIBXML_NONET - 文書の読み込み中のネットワークアクセスを無効にする
  • LIBXML_NOWARNING - 警告出力を抑制する
  • LIBXML_NOXMLDECL - 文書を保存するときにXML宣言を削除する
  • LIBXML_NSCLEAN - 冗長な名前空間宣言を削除する
  • LIBXML_PARSEHUGE - パーサでハードコーディングされたすべての制限を緩和するための XML_PARSE_HUGE フラグを設定する。これは、文書の再帰の最大数や テキストノードのサイズなどの制限に影響する。
  • LIBXML_XINCLUDE - XInclude 置換を実装する
  • LIBXML_ERR_ERROR - 回復可能なエラーを取得する
  • LIBXML_ERR_FATAL - 致命的なエラーを取得する
  • LIBXML_ERR_NONE - エラーを取得しない
  • LIBXML_ERR_WARNING - 簡単な警告を取得する
  • LIBXML_VERSION - libxmlのバージョンを取得する(例:20605または20617)
  • LIBXML_DOTTED_VERSION - トット付きのlibxmlバージョンを取得する(例:2.6.5または2.6.17)
ns 任意。名前空間接頭辞またはURIを指定する
is_prefix 任意。ブール値を指定する。ns が接頭辞の場合は TRUE。ns が URI の場合は FALSE。デフォルトは FALSE

技術内容
返り値: 成功した場合は、a SimpleXMLElement objectが返され、失敗した場合は FALSE が返されます
PHP バージョン: 5+

その他の例

次のXMLファイル "note.xml" があるとします:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

例 1

XMLファイル内の各要素からデータを出力します:

<?php
$xml=simplexml_load_file("note.xml");
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>
例の実行 »

例 2

各子ノードの要素名とデータをXMLファイルに出力します:

<?php
$xml=simplexml_load_file("note.xml");
echo $xml->getName() . "<br>";

foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br>";
  }
?>
例の実行 »

❮ PHP SimpleXML リファレンス