APIの使用方法について説明します。このAPIは、DOMと同様にXMLデータをツリー構造で扱いますが、XML要素をPHPのネイティブなオブジェクトに変換するところが異なります。XMLデータをSimpleXMLオブジェクトに変換した後は、通常のPHPオブジェクト変数と同様の方法でXMLデータにアクセスできます。SimpleXMLでリスト1に示したXML文書を処理する例を見てみましょう。XMLデータを読み込んでHTMLテーブル形式で出力するサンプルコード(sxe.php)をリスト6に示します。APIと同様の動作となります。APIによる記述例と比べて格段に簡潔でわかりやすいコードとなっていることがわかります。詳しく見てみましょう。XML文書のパスを指定してsimplexml_load_file関数をコールし、SimpleXMLオブジェクトを生成します(2行目)。この関数により返される変数$booksは、ルートノード(book)を指すSimpleXML型のオブジェクトです。ルートノードの任意の子ノードには、$books->book->titleのようにプロパティとしてアクセスできます。リスト6のスクリプトでは、foreachにより反復処理を行い、HTMLテーブルとしてデータを出力しています(4〜8行目)。このスクリプトを実行すると、図2と同じ出力が得られます。SimpleXMLオブジェクトとDOMオブジェクトは相互に変換することが可能です。SimpleXMLオブジェクトをDOMオブジェクトに変換するには、次のように記述します。dom_import_simplexml($sxe);また、DOMオブジェクトをSimpleXMLオブジェクトに変換するには、次のように記述します。APIのほうが容易です。APIのほうが便利です。したがって、必要に応じてDOMオブジェクトとSimpleXMLオブジェクトを相互に変換することで、双方のAPIの便利なところを最大限に利用することができるのです。XMLデータ変換用API(1)PHP5は、XMLデータの変換を行うAPIとしてXSLTをサポートします。PHP4では、XSLTエンジンとしてSablotronが使用されていましたが、PHP5ではlibxml2に基づくlibxsltが採用されています。libxsltはオープンソースのXSLTエンジンでは最速の部類に属する優れたXSLTプロセッサです。インストールXSLTを使用する手順を次に示します。1.0.18以降がインストールされていることを前提としています。libxml2と同様に最近のLinuxディストリビューションの多くではlibxsltがインストールされていたり、RPMなどのパッケージが用意されています。ここでは、ソースコードからインストールする手順を示します。http://xmlsoft.org/から最新版(執筆時点でlibxslt-1.1.7)のアーカイブを入手し、インストールします。installXSLTモジュールは、PHPの作成時に組み込むか、拡張モジュールとして組み込みます。PHPに組み込む場合には、--with-xslをconfigureへのオプションとして追加し、PHPを構築します。install拡張モジュールとして組み込む場合には、PHPがインストール済みの環境で次の手順により、拡張モジュールを作成、インストールします。install最後に、設定ファイルphp.iniを編集し、extension_dirを拡張モジュールがインストールされたディレクトリに設定します。ここでは、/usr/local/lib/php/extensions/no-debug-non-zts-20040412/にインストールされているものとします。-m」を実行したときに「xsl」が出力に含まれていれば、組み込みは成功です。類PHPと出会ってから早9年が過ぎ、常に進化し続けるその姿を日々楽しんでいる。PHPコミュニティ活動にかけられる時間が年々減ってきているのが気がかり。この記事の評価をお聞かせくださいボタンをクリックしますとウインドウが開きます。