|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
XXV. DOM XML関数導入
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をインストールしたディレクトリです。
古い関数DOM標準に沿っておらず、もう使うべきではない関数がごく少数あります。 これらの関数を以下の表に示します。 関数 DomNode_append_child() はその動作が変更さ れました。この関数は、子を追加しますが、兄弟は追加しません。 これにより、アプリケーションの動作に影響が生じる場合、DOMではない 関数 DomNode_append_sibling()を使用して下さい。
表 1. 古い関数とその代替関数
定義済みの定数これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。 表 2. XML定数
クラスモジュールのAPIは、DOMレベル2標準に可能な限り基づいています。結果 的にAPIは完全にオブジェクト指向です。このモジュールを使用する際に DOM標準が利用できることは望ましいことです。 このAPIはオブジェクト指向ですが、最初の引数として処理するオブジェ クトを渡すオブジェクト指向でない方法でコールすることができる多く の関数があります。これらの関数は、主に過去のバージョンとの互換性 確保のために維持されていますが、新規開発での使用はもはや推奨され ません。 このAPIは、公式なDOM APIとは二つの点で異なっています。まず、全て のクラスの属性は、同じ名前を有する関数として実装され、関数名はPHP の命名表記に基づいています。これは、DOM関数lastChild()が last_child()と書かれることを意味します。 このモジュールは、一連のクラスを定義します。メソッドも含めたリス トを以下の表に示します。クラスは、DOM標準でDOMxxxという名前のもの と等価です。
表 3. クラスの一覧
表 4. DomDocument クラス (DomDocument : DomNode)
表 5. DomElement クラス (DomElement : DomNode)
表 6. DomNode クラス
表 7. DomAttribute クラス (DomAttribute : DomNode)
表 8. DomProcessingInstruction クラス (DomProcessingInstruction : DomNode)
表 10. XPathContext クラス
表 11. DomDocumentType クラス (DomDocumentType : DomNode)
クラスDomDtdはDomNodeから派生したものです。DomCommentはDomCDataか ら派生したものです。 例このリファレンスにおける多くの例は、XML文字列を必要とします。この 文字列を全ての例で繰りかえし記述するかわりに、ファイルに書き込ん で、各例で読み込むことにします。この読み込まれるファイルは、以下 の例に示されています。XMLドキュメントを作成し、 DomDocument_open_file()で読み込むことも可能で す。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "PHP マニュアル". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |