はじめまして!
EC studioで技術担当をしている須藤裕嗣です。
今日はPHP4におけるXMLデータの取り扱いについて紹介します。
PHP5においてはXMLのサポートも強化されており、
SimpleXML拡張モジュールなどの便利な関数を
最初から利用することもできます。
「PHP5の関数をPHP4で使う - PHP_Compat」でもお伝えした通り
PHP4は2007年末でサポートを終了となります。
しかし、まだまだPHP4で動いているシステムも多いのが
現状ではないでしょうか。
PHP4において、どのようにXMLを処理することができるのか
いくつかご紹介いたします。
xml_parse()関数
(PHP4の組み込み関数)
サンプルとして以下のXMLデータを解析し、
表示させるスクリプトをご覧ください。
XMLデータ(test.xml):
<?xml version="1.0" encoding="UTF-8" ?>
<user>
<name>須藤裕嗣</name>
<language>php</language>
<language>javascript</language>
</user>
XMLパーサ(xml_parse)は各要素・属性・値を
どのように処理するのかを、それぞれ関数を作成し
指定する必要があります。
上記サンプルは解析して表示するだけの、
非常にシンプルな処理なのですが、
とても見づらくなってしまいますね。
Keith Devens - PHP XML Library
(こちらからダウンロードし、xml.phpというファイル名で保存)
このライブラリを利用すると、比較的軽く結果を得ることができ
とても便利です。
xml_parse()関数と同じXMLデータを配列に格納する処理を
ご覧ください。
-
include('xml.php');
-
$data = XML_unserialize($xml_data);
これだけで$dataに配列としてXMLデータが入ってきます。
XML_Unserializer
(PEARのXML_Serializerをインストール)
PEARにもXMLを解析する便利なクラスが用意されています。
同様に同じXMLデータを配列に格納する処理をご覧ください。
-
require_once "XML/Unserializer.php";
-
$parser = new XML_Unserializer(array('parseAttributes' => true));
-
$parser->unserialize($xml_data);
-
$data = $parser->getUnserializedData();
ここで少し変わったXMLデータを試してみます。
XMLデータ:
<?xml version="1.0" encoding="UTF-8" ?>
<user>
test
<name>須藤裕嗣</name>
<skill>php</skill>
<skill>javascript</skill>
</user>
実は先ほど紹介した「Keith Devens - PHP XML Library」では
このデータをうまく解析できません。
「XML_Unserializer」を使うと以下のように処理することができます。
'_content'というキーはオプションで変更することも可能です。
このようなXMLデータを扱う機会は少ないとは思いますが、、
少し複雑なXMLを扱うときには、XML_Unserializerをお勧めします。
解析する際のオプションも充実しておりますので、ご参照ください。
PEARマニュアル
関連した記事:
■ 「日本でいちばん社員満足度が高い会社の非常識な働き方」
この記事へのコメント (0)
コメントはまだありません。


















ページの先頭に戻る
コメントを投稿