XML Libraryを使ってみよう
XMLをPHP上で簡単に操作する方法を「PHP XML Library」を使って紹介します。
PHPとXMLを連携する際に、PHPの標準関数を使用したりPEARを使ったり色々な方法がありますが、今回紹介するのはXMLを多次元配列にセットしたり、またはその逆(配列をXMLに変換すること)が出来ます。
まず、Keith Devens .comから「PHP XML Library, version 1.2b」をダウンロードします。
次にダウンロードしたプログラムをrequire_once関数やinclude_once関数で読み込ませます。
require_once('xml.php');
これで準備はOKです。
次に読み込ませるXMLを準備しましょう。
今回は、簡単な例として以下のようにシンプルなXMLを準備しました。
<?xml version="1.0" encoding="utf-8"?>
<DOCUMENT>
<members id="1">
<name>テスト 太郎</name>
<age>30</age>
</members>
<members id="2">
<name>テスト 花子</name>
<age>25</age>
</members>
</DOCUMENT>
このXMLを「test.xml」を言う名前で保存しておきます。
fread関数を用いて、xmlを変数に全て格納します。
$fp = fopen("test.xml", "r");
$xml = fread($fp, filesize("test.xml"));
fclose($fp);
require_onceで読み込ませたファイルの中に定義されているXML_unserialize関数を使用して変数に格納します。
$data = XML_unserialize($xml);
$data配列の中にXMLの内容が格納されています。
var_dump関数などを使用して表示してみましょう。
今までのソースをまとめると以下の通りです。
require_once('xml.php');$fp = fopen("test.xml", "r");
$xml = fread($fp, filesize("test.xml"));
fclose($fp);$data = XML_unserialize($xml);
var_dump($data);
XMLを配列に変換するサンプルはこちらから。(ソースを表示すると見やすいと思います)
今度は、変数に格納したXMLを復元してみましょう。
先程、生成した変数をXMLに変換するにはXML_serialize関数を使用します。
echo XML_serialize($data);
XMLとして出力されます。
出力したサンプルはこちらから。
今まで紹介したように、XMLを簡単に使用したい場合など重宝します^^;
ただ、今までの経験上からですが配列にセットした場合、予想した値が格納されなかったりバグの原因になりやすく、また発見しにくいので複雑な処理には向いてないと思います。
それでも結構便利ですが、、、^^;
・関連記事
XML_Serializerを使ってみようを見る
XML LibraryのPEAR版みたいなものです。
| 固定リンク | コメント (3) | トラックバック (0)
