基本的な SimpleXML の使用法このリファレンスの多くの例では XML 文字列が必要です。それぞれの例で この文字列をくり返す代わりに、あるファイルにこの文字列を保存して、 例ごとに読みこむことにします。この読みこまれるファイルは、以下の例 に関するセクションで使います。 もしくは、XMLドキュメントを作成し、 simplexml_load_file により読みこむことも 可能です。
例1 XML 文字列を設定するインクルードファイル example.php
SimpleXML の容易さが最も明確に現われるのは、 簡単な XML ドキュメントから文字列または数字を展開する時です。 例2
上の例の出力は以下となります。 So, this language. It's like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary. XML ドキュメント内の要素のうち、PHP の命名規約で許可されていない文字 (たとえばハイフンなど) を含む名前のものにアクセスするには、 要素名を括弧とアポストロフィで囲みます。 例3
上の例の出力は以下となります。 PHP solves all my web problems
例4 SimpleXML でユニークでない要素にアクセスする 単一の親要素の子要素としてある要素のインスタンスが複数存在する時、 通常の反復処理を適用することができます。
上の例の出力は以下となります。 Ms. Coder played by Onlivia Actora Mr. Coder played by El ActÓr
例5 属性を使用する ここまでは、要素の名前と値を読む方法のみを扱って来ました。 SimpleXML は要素の属性にアクセスすることも可能です。 要素の属性にアクセスする方法は、配列 の要素に アクセスするのと全く同じです。
上の例の出力は以下となります。 7 thumbs up5 stars
例6 要素および属性をテキストと比較する
要素または属性を文字列と比較する、もしくは、文字列を引数とする関数に
渡すには、
上の例の出力は以下となります。 My favorite movie.PHP: Behind the Parser
例7 ふたつの要素の比較 たとえ同一の要素を指していたとしても 2 つの SimpleXMLElements は異なるものと見なされます。
上の例の出力は以下となります。 bool(false)
例8 XPath の使用
SimpleXML は、XPath を標準でサポートしています。
' 上の例の出力は以下となります。 Ms. Coder played by Onlivia Actora Mr. Coder played by El ActÓr
例9 値を設定する SimpleXMLの中のデータは、定数とすることができません。 オブジェクトは、その全ての要素について変更が可能です。
上の例の出力は以下となります。 <?xml version="1.0" standalone="yes"?> <movies> <movie> <title>PHP: Behind the Parser</title> <characters> <character> <name>Miss Coder</name> <actor>Onlivia Actora</actor> </character> <character> <name>Mr. Coder</name> <actor>El ActÓr</actor> </character> </characters> <plot> So, this language. It's like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary. </plot> <great-lines> <line>PHP solves all my web problems</line> </great-lines> <rating type="thumbs">7</rating> <rating type="stars">5</rating> </movie> </movies>
例10 要素と属性を追加する SimpleXML を使用して簡単に子要素および属性を追加することができます。
上の例の出力は以下となります。 <?xml version="1.0" standalone="yes"?> <movies> <movie> <title>PHP: Behind the Parser</title> <characters> <character> <name>Ms. Coder</name> <actor>Onlivia Actora</actor> </character> <character> <name>Mr. Coder</name> <actor>El ActÓr</actor> </character> <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters> <plot> So, this language. It's like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary. </plot> <great-lines> <line>PHP solves all my web problems</line> </great-lines> <rating type="thumbs">7</rating> <rating type="stars">5</rating> <rating type="mpaa">PG</rating></movie> </movies>
例11 DOM との相互運用性 PHP は、SimpleXML 形式と DOM 形式の間で XML ノードを変換する機構を有しています。 この例では、DOM 要素を SimpleXML に変換することができます。
上の例の出力は以下となります。 blah |