2インストール少し前置きが長くなりましたが、早速、XML機能を使用してみましょう。XML関連の機能は、XML処理用の機能を実装したライブラリlibxml2を使用しています。Veillard氏らが開発したオープンソースのライブラリで、Gnomeの標準ライブラリとして採用されています。PHP4では、SAXの実装としてexpat(http://expat.sourceforge.net/)、DOMの実装としてlibxml2を使用していましたが、PHP5ではともにlibxml2を使用しています。SimpleXMLも内部的にDOMツリーを構築しており、libxml2の機能を利用しています。libxml2は、最近のLinuxディストリビューションには最初からインストールされていたり、RPMなどのパッケージが用意されていたりするので、インストールは容易です。本稿では、ソースファイルからインストールする手順を示します。1)を想定しています。libxml2のインストールlibxml2の最新版(執筆時点では2.6.10)のアーカイブ(libxml2-2.6.10.tar.gz)をhttp://www.xmlsoft.org/から入手します。libxml2はiconv関数により文字エンコーディング変換を行うので、システムの標準ライブラリがiconv関数をサポートしていない場合は、libiconvライブラリもインストールしておきます。libiconvはhttp://www.gnu.org/software/libiconv/から入手可能です。libxml2をインストールするには、アーカイブを展開し、configureを実行した後、構築、インストールします。installPHPへXMLサポートを組み込むPHPでは、標準でSAX、DOM、SimpleXMLの3種類のAPIが組み込まれます。このため、普通にPHPをインストールするだけで、特にXMLサポート用の構築オプションは必要ありません。システムによってはインストールされたlibxml2のパスが見つからずエラーとなったり、複数のバージョンが混在する可能性があります。この場合は、構築オプション--with-libxml-dir=DIRをconfigureスクリプトに指定します。/usr/local以下にlibxml2をインストールしている場合は次のようになります。installこの例では、CGI版とCLI版のPHPが構築・インストールされます。Apacheモジュール版などをインストールする場合は、必要な構築オプションを指定します。XMLサポートが正常に組み込まれたことを確認するには、コマンドプロンプトでCLI版PHPにオプション-mを付けて実行します。-mこれにより、組み込まれた拡張モジュールのリストが表示されます。この中にlibxml、dom、xml、SimpleXMLが含まれていれば、正常に組み込まれていることが確認できます。同様に次のようなスクリプト(test.php)を作成し、CLI版PHPやWebサーバ経由でモジュール版PHPで実行しても、組み込み状況を確認することができます。<?phpphpinfo();?>このスクリプトの出力内容の一部を図1に示します(大量の出力が行われるため、XML関連部分のみを抽出して示しています)。図1:phpinfo()の出力(XML関連のみ抽出)domはDOMモジュール、xmlはSAXモジュール、SimpleXMLはSimpleXMLモジュールを表します。libxmlは、libxml2へのインターフェイス用の共通モジュールで直接ユーザが使うことはありませんが、DOMなどの実装により内部的に使用されます。類PHPと出会ってから早9年が過ぎ、常に進化し続けるその姿を日々楽しんでいる。PHPコミュニティ活動にかけられる時間が年々減ってきているのが気がかり。