DOM XML
PHP Manual

DOM XML 関数

古い関数

DOM 標準に沿っておらず、もう使うべきではない関数がごく少数あります。 これらの関数を以下の表に示します。 関数 DomNode_append_child() はその動作が変更されました。 この関数は、子を追加しますが、兄弟は追加しません。 これにより、アプリケーションの動作に影響が生じる場合、DOM ではない関数 DomNode_append_sibling() を使用してください。

古い関数とその代替関数
古い関数 新しい関数
xmldoc domxml_open_mem()
xmldocfile domxml_open_file()
domxml_new_xmldoc domxml_new_doc()
domxml_dump_mem DomDocument_dump_mem()
domxml_dump_mem_file DomDocument_dump_file()
DomDocument_dump_mem_file DomDocument_dump_file()
DomDocument_add_root DomDocument_create_element() followed by DomNode_append_child()
DomDocument_dtd DomDocument_doctype()
DomDocument_root DomDocument_document_element()
DomDocument_children DomNode_child_nodes()
DomDocument_imported_node 代替関数なし。
DomNode_add_child 例えば DomDocument_create_element() により、 新しいノードを作成し、 DomNode_append_child() により追加します。
DomNode_children DomNode_child_nodes()
DomNode_parent DomNode_parent_node()
DomNode_new_child 例えば DomDocument_create_element() で 新規ノードを作成し、 DomNode_append_child() で追加します。
DomNode_set_content 例えば DomDocument_create_element() で 新規ノードを作成し、 DomNode_append_child() で追加します。
DomNode_get_content コンテンツは単なるテキストノードであり、 DomNode_child_nodes() でアクセス可能です。
DomNode_set_content コンテンツは単なるテキストノードであり、 DomNode_append_child() で追加できます。

クラス

モジュールの API は、DOM レベル 2 標準に可能な限り基づいています。 結果的に API は完全にオブジェクト指向です。このモジュールを使用する際に DOM 標準が利用できることは望ましいことです。 この API はオブジェクト指向ですが、 最初の引数として処理するオブジェクトを渡すことによってコールできる、 オブジェクト指向でない関数も多くあります。 これらの関数は、主に過去のバージョンとの互換性確保のために維持されていますが、 新規開発での使用はもはや推奨されません。

この API は、公式な DOM API とは二つの点で異なっています。まず、 全てのクラスの属性は、同じ名前を有する関数として実装され、関数名は PHP の命名表記に基づいています。これは、DOM 関数 lastChild() が last_child() と書かれることを意味します。

このモジュールは、一連のクラスを定義します。メソッドも含めたリストを 以下の表に示します。クラスは、DOM 標準で DOMxxx という名前のものと等価です。

クラスの一覧
クラス名 親クラス
DomAttribute DomNode
DomCData DomNode
DomComment DomCData : DomNode
DomDocument DomNode
DomDocumentType DomNode
DomElement DomNode
DomEntity DomNode
DomEntityReference DomNode
DomProcessingInstruction DomNode
DomText DomCData : DomNode
Parser 現在はまだ DomParser と呼ばれています
XPathContext  

DomDocument クラス (DomDocument : DomNode)
メソッド名 関数名 注意
doctype DomDocument_doctype()  
document_element DomDocument_document_element()  
create_element DomDocument_create_element()  
create_text_node DomDocument_create_text_node()  
create_comment DomDocument_create_comment()  
create_cdata_section DomDocument_create_cdata_section()  
create_processing_instruction DomDocument_create_processing_instruction()  
create_attribute DomDocument_create_attribute()  
create_entity_reference DomDocument_create_entity_reference()  
get_elements_by_tagname DomDocument_get_elements_by_tagname()  
get_element_by_id DomDocument_get_element_by_id()  
dump_mem DomDocument_dump_mem() DOM 標準ではありません
dump_file DomDocument_dump_file() DOM 標準ではありません
html_dump_mem DomDocument_html_dump_mem() DOM 標準ではありません
xpath_init xpath_init DOM 標準ではありません
xpath_new_context xpath_new_context DOM 標準ではありません
xptr_new_context xptr_new_context DOM 標準ではありません

DomElement クラス (DomElement : DomNode)
メソッド名 関数名 注意
tagname DomElement_tagname()  
get_attribute DomElement_get_attribute()  
set_attribute DomElement_set_attribute()  
remove_attribute DomElement_remove_attribute()  
get_attribute_node DomElement_get_attribute_node()  
set_attribute_node DomElement_set_attribute_node()  
get_elements_by_tagname DomElement_get_elements_by_tagname()  
has_attribute DomElement_has_attribute()  

DomNode クラス
メソッド名 注意
DomNode_node_name()  
DomNode_node_value()  
DomNode_node_type()  
DomNode_last_child()  
DomNode_first_child()  
DomNode_child_nodes()  
DomNode_previous_sibling()  
DomNode_next_sibling()  
DomNode_parent_node()  
DomNode_owner_document()  
DomNode_insert_before()  
DomNode_append_child()  
DomNode_append_sibling() DOM 標準ではありません。この関数は 先ほどの DomNode_append_child() の動作をエミュレートします。
DomNode_remove_child()  
DomNode_has_child_nodes()  
DomNode_has_attributes()  
DomNode_clone_node()  
DomNode_attributes()  
DomNode_unlink_node() DOM 標準ではありません
DomNode_replace_node() DOM 標準ではありません
DomNode_set_content() DOM 標準にはなく、古いメソッドです
DomNode_get_content() DOM 標準にはなく、古いメソッドです
DomNode_dump_node() DOM 標準ではありません
DomNode_is_blank_node() DOM 標準ではありません

DomAttribute クラス (DomAttribute : DomNode)
メソッド名   注意
name DomAttribute_name()  
value DomAttribute_value()  
specified DomAttribute_specified()  

DomProcessingInstruction クラス (DomProcessingInstruction : DomNode)
メソッド名 関数名 注意
target DomProcessingInstruction_target()  
data DomProcessingInstruction_data()  

Parser クラス
メソッド名 関数名 注記
add_chunk Parser_add_chunk()  
end Parser_end()  

XPathContext クラス
メソッド名 関数名 注記
eval XPathContext_eval()  
eval_expression XPathContext_eval_expression()  
register_ns XPathContext_register_ns()  

DomDocumentType クラス (DomDocumentType : DomNode)
メソッド名 関数名 注記
name DomDocumentType_name()  
entities DomDocumentType_entities()  
notations DomDocumentType_notations()  
public_id DomDocumentType_public_id()  
system_id DomDocumentType_system_id()  
internal_subset DomDocumentType_internal_subset()  

クラス DomDtd は DomNode から派生したものです。DomComment は DomCData から派生したものです。

このリファレンスにおける多くの例は、XML 文字列を必要とします。 この文字列を全ての例で繰りかえし記述するかわりに、ファイルに書き込んで 各例で読み込むことにします。この読み込まれるファイルは、 以下の例に示されています。XML ドキュメントを作成し、 DomDocument_open_file() で読み込むことも可能です。

例1 XML 文字列を有するファイル example.inc を読み込む

<?php
$xmlstr 
"<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &sp;
  <!-- comment -->
  <informaltable ID='findme' language='&sp;'>
   <tgroup cols='3'>
    <tbody>
     <row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
</chapter>"
;
?>

目次


DOM XML
PHP Manual
アダルトレンタルサーバー