libro
www.tuyano.com
初心者のためのPHPプログラミング入門

XMLデータの利用 (1/3)

作成:2012-08-05 17:33
更新:2012-08-05 17:33

■XMLとSimpleXML

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など、今回利用するもの)と同じ場所に配置しておいて下さい。

※プログラムリストが表示されない場合

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>
※関連コンテンツ

「初心者のためのPHPプログラミング入門」に戻る