このモジュールは、 実験的 なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。 domxml拡張モジュールは、DOM標準に対する互換性を改善するためPHPバー ジョン4.3.0で書き直されました。拡張モジュールには、まだ、多くの古 い関数が含まれていますが、使用は推奨されません。特にオブジェクト 指向でない関数の使用は避けるべきです。 拡張モジュールによりDOM APIでXMLドキュメントを処理することが可能 となります。また、完全なXMLドキュメントをPHPオブジェクトツリーに 変換する関数 domxml_xmltree() も提供されています。 現在、このツリーは読み込み可とされています。このツリーを修正する ことは可能ですが、 DomDocument_dump_mem() にこれ を適用することはできないため、意味はありません。 そこで、XMLファイルを読み込み、修正した版を書き込みたい場合、 DomDocument_create_element(), DomDocument_create_text(), set_attribute() 等を使用し、最後に DomDocument_dump_mem() 関数を使用して下さい。 この拡張モジュールは、 GNOME XMLライブラ リ を使用します。このライブラリをダウンロードし、インストー ルして下さい。少なくとも libxml-2.4.14 が必要です。 DOM XSLT機能を使用するために libxslt library と http://www.exslt.org/ によ るEXSLT拡張を使用することができます。 (拡張)XSLT機能を使用するには、これらのライブラリをダウンロード、 インストールして下さい。少なくともlibxslt-1.0.18が必要です。 この拡張モジュールは、 --with-dom=[DIR] を指定してPHPを設 定した場合のみ利用可能です。DOM XSLTサポートを組み込むには、 --with-dom-xslt[=DIR] を追加して下 さい。DIRは、libxsltをインストールしたディレクトリです。DOM EXSLTサ ポートを有効にするには、 --with-dom-exslt[=DIR] を指定しま す。ただし、DIRはlibxsltをインストールしたディレクトリです。 Win32ユーザへの注意 このモジュールをWindows環境で有効にするには、 libxml2.dll をPHP/Win32バイナリパッケージのDLL フォルダから使用するWindowsマシンのSYSTEM32フォルダ(例: C:\WINNT\SYSTEM32またはC:\WINDOWS\SYSTEM32)にコピーする必要がありま す。 DOM標準に沿っておらず、もう使うべきではない関数がごく少数あります。 これらの関数を以下の表に示します。 関数 DomNode_append_child() はその動作が変更さ れました。この関数は、子を追加しますが、兄弟は追加しません。 これにより、アプリケーションの動作に影響が生じる場合、DOMではない 関数 DomNode_append_sibling() を使用して下さい。 表 1古い関数とその代替関数 これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。 表 2XML定数 モジュールのAPIは、DOMレベル2標準に可能な限り基づいています。結果 的にAPIは完全にオブジェクト指向です。このモジュールを使用する際に DOM標準が利用できることは望ましいことです。 このAPIはオブジェクト指向ですが、最初の引数として処理するオブジェ クトを渡すオブジェクト指向でない方法でコールすることができる多く の関数があります。これらの関数は、主に過去のバージョンとの互換性 確保のために維持されていますが、新規開発での使用はもはや推奨され ません。 このAPIは、公式なDOM APIとは二つの点で異なっています。まず、全て のクラスの属性は、同じ名前を有する関数として実装され、関数名はPHP の命名表記に基づいています。これは、DOM関数lastChild()が last_child()と書かれることを意味します。 このモジュールは、一連のクラスを定義します。メソッドも含めたリス トを以下の表に示します。クラスは、DOM標準でDOMxxxという名前のもの と等価です。 表 3クラスの一覧 表 4DomDocument クラス (DomDocument: DomNode) 表 5DomElement クラス (DomElement: DomNode) 表 6DomNode クラス 表 7DomAttribute クラス (DomAttribute: DomNode) 表 8DomProcessingInstruction クラス (DomProcessingInstruction: DomNode) 表 9Parser クラス 表 10XPathContext クラス 表 11DomDocumentType クラス (DomDocumentType: DomNode) クラスDomDtdはDomNodeから派生したものです。DomCommentはDomCDataか ら派生したものです。 このリファレンスにおける多くの例は、XML文字列を必要とします。この 文字列を全ての例で繰りかえし記述するかわりに、ファイルに書き込ん で、各例で読み込むことにします。この読み込まれるファイルは、以下 の例に示されています。XMLドキュメントを作成し、 DomDocument_open_file() で読み込むことも可能で す。 例 1XML文字列を有するファイルexample.incを読み込む