PHP simplexml_load_string()関数

PHP SimpleXML 参考手册PHP SimpleXML リファレンスマニュアル

例

整形式の XML 文字列を SimpleXMLElement オブジェクトに変換し、オブジェクトのキーと要素を出力します:

<?php $note=<<<XML <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> XML; $xml=simplexml_load_string($note); print_r($xml); ?>

サンプルを実行 »

定義と使用法

simplexml_load_string() 関数は、整形式の XML 文字列を SimpleXMLElement オブジェクトに変換します。


構文

simplexml_load_string(data,classname,options,ns,is_prefix);

パラメータ 説明
data 必須。整形式の 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、もしnsURI である場合は FALSE。デフォルトは FALSE です。

技術詳細

戻り値: 成功した場合は SimpleXMLElement オブジェクトを返し、失敗した場合は FALSE を返します。
PHP バージョン: 5+


その他の例

例 1

XML 文字列内の各要素のデータを出力します:

<?php $note=<<<XML <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> XML; $xml=simplexml_load_string($note); echo $xml->to . "<br>"; echo $xml->from . "<br>"; echo $xml->heading . "<br>"; echo $xml->body; ?>

サンプルを実行 »

例 2

XML 文字列内の各子ノードの要素名とデータを出力します:

<?php $note=<<<XML <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> XML; $xml=simplexml_load_string($note); echo $xml->getName() . "<br>"; foreach($xml->children() as $child) { echo $child->getName() . ": " . $child . "<br>"; } ?>

サンプルを実行 »


PHP SimpleXML 参考手册PHP SimpleXML リファレンスマニュアル その他の拡張モジュール