CXLIX. SimpleXML関数
導入
SimpleXML拡張モジュールは、 XMLをオブジェクトにとても簡単かつ容易に変換するための機能を 提供します。変換後のオブジェクトでは、 通常のプロパティセレクタや配列反復子を用いて処理を行うことが 可能です。
要件
SimpleXML 拡張モジュールは PHP 5 が必要になります。
インストール手順
SimpleXML 拡張モジュールは、デフォルトで利用可能です。 この機能を無効にするには、
--disable-simplexml
コンフィギュアオプションを使用してください。
例
このリファレンスの多くの例ではXML文字列を必要とします。各例で この文字列をくり返す代わりに、あるファイルにこの文字列を保存して、 各例で読みこむことにします。この読みこまれるファイルは、以下の例 に関するセクションで使用されます。 もしくは、XMLドキュメントを作成し、 simplexml_load_file() により読みこむことも 可能です。
SimpleXMLの容易さが最も明確に現われるのは、 簡単なXMLドキュメントから文字列または数字を展開する時です。
|
例 4. 属性を使用する ここまでは、要素の名前と値を読む方法のみを扱って来ました。 SimpleXMLは要素の属性にアクセスすることも可能です。 要素の属性にアクセスする方法は、配列 の要素に アクセスするのと全く同じです。
|
|
例 5. 要素および属性をテキストと比較する 要素または属性を文字列と比較する、もしくは、文字列を引数とする関数に 渡すには、 (string) により文字列にキャストする 必要があります。さもないと、PHPはこの要素をオブジェクトとして扱います。
|
|
例 6. XPath の使用 SimpleXML は、 XPath を標準でサポートしています。 <character> 要素を全て見つけるには、 以下のようにします。
' // ' はワイルドカードとして動作します。絶対パスを指定するには、 スラッシュを一つだけにします。 |
|
例 7. 値を設定する SimpleXMLの中のデータは、定数とすることができません。 オブジェクトは、その全ての要素について変更が可能です。
上のコードは、元のXMLドキュメントと全く同じXMLドキュメントを新規に 出力しますが、新しいXMLファイルでは、Ms. Coder が Miss Coder に変更されているところが異なります。 |
|
例 8. 要素と属性を追加する PHP 5.1.3 以降では、SimpleXML を使用して簡単に子要素および属性を追加することができます。
上のコードは、元と同じオブジェクトを出力しますが、 そこに新しいキャラクターと評価が追加されています。 |
|
例 9. DOMとの相互運用性 PHPは、SimpleXML形式とDOM形式の間でXMLノードを変換する機構を有しています。 この例では、DOM要素をSimpleXMLに変換することができます。
|
- 目次
- SimpleXMLElement->addAttribute() -- SimpleXML 要素に属性を追加する
- SimpleXMLElement->addChild() -- XML ノードに子要素を追加する
- SimpleXMLElement->asXML() -- SimpleXML 要素に基づき整形式の XML 文字列を返す
- SimpleXMLElement->attributes() -- 要素の属性を定義する
- SimpleXMLElement->children() -- 指定したノードの子ノードを見付ける
- SimpleXMLElement->__construct() -- 新しい SimpleXMLElement オブジェクトを作成する
- SimpleXMLElement->getDocNamespaces() -- ドキュメントで宣言されている名前空間を返す
- SimpleXMLElement->getName() -- XML 要素の名前を取得する
- SimpleXMLElement->getNamespaces() -- ドキュメントで使用している名前空間を返す
- SimpleXMLElement->registerXPathNamespace() -- 次の XPath クエリ用の prefix/ns コンテキストを作成する
- SimpleXMLElement->xpath() -- XML データに Xpath クエリを実行する
- simplexml_import_dom -- DOM ノードから SimpleXMLElement オブジェクトを取得する
- simplexml_load_file -- XMLファイルをパースし、オブジェクトに代入する
- simplexml_load_string -- XML 文字列をオブジェクトに代入する