PHPでは、XMLを扱うための機能がいろいろと用意されています。PHP5以前は、そのための関数がずらりと揃えられていて、それらを呼び出し処理していたのですが、PHP5からオブジェクティブに扱うための仕組みが追加されました。ここでは、そのひとつである「
SimpleXML」と呼ばれる機能を利用してXMLを操作してみましょう。
SimpleXMLは、文字通りXMLを利用するための非常にシンプルな機能です。これは、XMLのファイルやテキストからデータを読み込み、「
SimpleXMLElement」というクラスのインスタンスを作成します。このオブジェクト内にあるメソッドなどを呼び出すことで、XMLのデータを扱えるようになります。
・XMLファイルからオブジェクトを生成する$変数 = simplexml_load_file( ファイルの指定 );
・テキスト値からオブジェクトを生成する$変数 = simplexml_load_string( テキスト );
これらの関数は、第1引数にファイルの指定(ファイル名やファイルのパス)またはXMLのテキストを指定することでオブジェクトを作成します。実は、これら関数にはもっと引数が用意されているのですが、とりあえず指定のデータからXMLのオブジェクトを生成するだけなら、第1引数だけ用意しておけばOKです。
あるいは、「関数を呼び出して……ってのはオブジェクティブでなくてイヤ」というなら、
SimpleXMLElementのオブジェクトをnewで作成する方法もあります。これも引数がいくつかあるのですが、とりあえず第1~3引数の使い方だけわかればいいでしょう。
・SimpleXMLElementを生成する$変数 = new SimpleXMLElement( データ, オプション, 真偽値 );
第1引数には、XMLデータとなるものを指定します。これはXMLのテキストでもいいですし、XMLファイルのURLを指定してもかまいません。オプションにはオプション設定の値を指定するのですが、これはとりあえず「ゼロを指定する」と考えておいて下さい。何もオプションはないよ、という場合の値です。
第3引数の真偽値は、第1引数のデータがファイルかどうかを指定するものです。第1引数にXMLのテキストを指定してある場合は、これは
false(あるいは省略してもいい)ですし、ファイルのURLを指定してあったならば
trueにします。ファイルからデータを読み込む場合、この第3引数がtrueになっていないとオブジェクト生成に失敗するので、必ず用意して下さい。
とりあえず、これでXMLのデータを扱うための
SimpleXMLElementオブジェクトを作ることはできるようになりました!
では、XMLを操作するサンプルとして、簡単なXMLデータを作成しておくことにしましょう。下のリスト欄にサンプルコードを掲載しておきました。これを「data.xml」という名前で、PHPファイル(index.phpなど、今回利用するもの)と同じ場所に配置しておいて下さい。