XMLデータの利用 (1/3)
作成:2012-08-05 17:33
更新:2012-08-05 17:33
更新:2012-08-05 17:33
■XMLとSimpleXML
PHPでは、XMLを扱うための機能がいろいろと用意されています。PHP5以前は、そのための関数がずらりと揃えられていて、それらを呼び出し処理していたのですが、PHP5からオブジェクティブに扱うための仕組みが追加されました。ここでは、そのひとつである「SimpleXML」と呼ばれる機能を利用してXMLを操作してみましょう。
SimpleXMLは、文字通りXMLを利用するための非常にシンプルな機能です。これは、XMLのファイルやテキストからデータを読み込み、「SimpleXMLElement」というクラスのインスタンスを作成します。このオブジェクト内にあるメソッドなどを呼び出すことで、XMLのデータを扱えるようになります。
・XMLファイルからオブジェクトを生成する
・テキスト値からオブジェクトを生成する
これらの関数は、第1引数にファイルの指定(ファイル名やファイルのパス)またはXMLのテキストを指定することでオブジェクトを作成します。実は、これら関数にはもっと引数が用意されているのですが、とりあえず指定のデータからXMLのオブジェクトを生成するだけなら、第1引数だけ用意しておけばOKです。
あるいは、「関数を呼び出して……ってのはオブジェクティブでなくてイヤ」というなら、SimpleXMLElementのオブジェクトをnewで作成する方法もあります。これも引数がいくつかあるのですが、とりあえず第1~3引数の使い方だけわかればいいでしょう。
・SimpleXMLElementを生成する
第1引数には、XMLデータとなるものを指定します。これはXMLのテキストでもいいですし、XMLファイルのURLを指定してもかまいません。オプションにはオプション設定の値を指定するのですが、これはとりあえず「ゼロを指定する」と考えておいて下さい。何もオプションはないよ、という場合の値です。
第3引数の真偽値は、第1引数のデータがファイルかどうかを指定するものです。第1引数にXMLのテキストを指定してある場合は、これはfalse(あるいは省略してもいい)ですし、ファイルのURLを指定してあったならばtrueにします。ファイルからデータを読み込む場合、この第3引数がtrueになっていないとオブジェクト生成に失敗するので、必ず用意して下さい。
とりあえず、これでXMLのデータを扱うためのSimpleXMLElementオブジェクトを作ることはできるようになりました!
では、XMLを操作するサンプルとして、簡単なXMLデータを作成しておくことにしましょう。下のリスト欄にサンプルコードを掲載しておきました。これを「data.xml」という名前で、PHPファイル(index.phpなど、今回利用するもの)と同じ場所に配置しておいて下さい。
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など、今回利用するもの)と同じ場所に配置しておいて下さい。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※data.xmlのソースコード <?xml version="1.0" encoding="UTF-8"?> <datas> <data> <name>Windows</name> <version>9</version> <price>99</price> </data> <data> <name>Mac</name> <version>15</version> <price>99999</price> </data> <data> <name>Linux</name> <version>123.4567</version> <price>0</price> </data> </datas>
※関連コンテンツ