DOM XML 関数とは? わかりやすく解説

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() 関数を使用してください。
注意: この拡張モジュールは » PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.0.0.
注意: この拡張は実験的なものではありません。しかしながら、PHP 5 版は決してリリースされないでしょう。PHP 4 でのみ配布されます。 もし PHP 5 でDOM XML をサポートする必要がある場合、 DOM 拡張を使用することができます。 この domxml 拡張は DOM 拡張と互換性はありません。

要件

この拡張モジュールは、» GNOME XML ライブラリを使用します。このライブラリをダウンロードし、 インストールしてください。少なくとも libxml-2.4.14 が必要です。 DOM XSLT 機能を使用するために » libxslt ライブラリ» http://www.exslt.org/ による EXSLT 拡張を使用することができます。 (拡張) XSLT 機能を使用するには、これらのライブラリをダウンロード、 インストールしてください。少なくとも libxslt-1.0.18 が必要です。

インストール手順

この » PECL 拡張 モジュールは PHP にバンドルされていません。 この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 » http://pecl.php.net/package/domxml.
この拡張モジュールは、 --with-dom=[DIR]を指定してPHPを設 定した場合のみ利用可能です。DOM XSLTサポートを組み込むには、 --with-dom-xslt[=DIR] を追加して下 さい。DIRは、libxsltをインストールしたディレクトリです。DOM EXSLTサ ポートを有効にするには、 --with-dom-exslt[=DIR] を指定しま す。ただし、DIRはlibxsltをインストールしたディレクトリです。
Windows ユーザの場合、これらの関数を使用するには php.iniphp_domxml.dll を有効にしてください。 PHP 4 の場合、この DLL は PHP の Windows ダウンロードバイナリの extensions/ ディレクトリ にあります。 この PECL 拡張モジュール の DLL» PHP ダウンロード ページ または » http://snaps.php.net/ からダウンロードできます。 また、この拡張を有効にするためには、追加の DLL をシステムパスにコピーする必要があります。 PHP 4 では、この DLL は dlls/ にあります。 DLL 名は、PHP <= 4.2.0 で libxml2.dll、 PHP >= 4.3.0 で iconv.dll です。 また、PHP 5.0.0 以降では iconv が Windows 用 PHP バイナリにデフォルトでコンパイルされていますので、 外部 DLL は必要ありません。

古い関数

DOM 標準に沿っておらず、もう使うべきではない関数がごく少数あります。 これらの関数を以下の表に示します。 関数 DomNode_append_child() はその動作が変更されました。 この関数は、子を追加しますが、兄弟は追加しません。 これにより、アプリケーションの動作に影響が生じる場合、DOM ではない関数 DomNode_append_sibling() を使用してください。
表 67. 古い関数とその代替関数
古い関数新しい関数
xmldocdomxml_open_mem()
xmldocfiledomxml_open_file()
domxml_new_xmldocdomxml_new_doc()
domxml_dump_memDomDocument_dump_mem()
domxml_dump_mem_fileDomDocument_dump_file()
DomDocument_dump_mem_fileDomDocument_dump_file()
DomDocument_add_root DomDocument_create_element()の後に DomNode_append_child()
DomDocument_dtdDomDocument_doctype()
DomDocument_rootDomDocument_document_element()
DomDocument_childrenDomNode_child_nodes()
DomDocument_imported_node代替関数なし。
DomNode_add_child 例えば DomDocument_create_element() により、 新しいノードを作成し、 DomNode_append_child() により追加します。
DomNode_childrenDomNode_child_nodes()
DomNode_parentDomNode_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() で追加できます。


定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
表 68. XML定数
定数説明
XML_ELEMENT_NODE (integer) 1ノードは要素(element)である
XML_ATTRIBUTE_NODE (integer) 2ノードは属性(attribute)である
XML_TEXT_NODE (integer) 3ノードはテキストの一部である
XML_CDATA_SECTION_NODE (integer) 4 
XML_ENTITY_REF_NODE (integer) 5 
XML_ENTITY_NODE (integer) 6ノードは&nbsp;のようなエンティティである
XML_PI_NODE (integer) 7ノードは処理命令(PI)である
XML_COMMENT_NODE (integer) 8ノードはコメントである
XML_DOCUMENT_NODE (integer) 9ノードはドキュメントである
XML_DOCUMENT_TYPE_NODE (integer) 10 
XML_DOCUMENT_FRAG_NODE (integer) 11 
XML_NOTATION_NODE (integer) 12 
XML_GLOBAL_NAMESPACE (integer) 1 
XML_LOCAL_NAMESPACE (integer) 2 
XML_HTML_DOCUMENT_NODE (integer)   
XML_DTD_NODE (integer)   
XML_ELEMENT_DECL_NODE (integer)   
XML_ATTRIBUTE_DECL_NODE (integer)   
XML_ENTITY_DECL_NODE (integer)   
XML_NAMESPACE_DECL_NODE (integer)   
XML_ATTRIBUTE_CDATA (integer)   
XML_ATTRIBUTE_ID (integer)   
XML_ATTRIBUTE_IDREF (integer)   
XML_ATTRIBUTE_IDREFS (integer)   
XML_ATTRIBUTE_ENTITY (integer)   
XML_ATTRIBUTE_NMTOKEN (integer)   
XML_ATTRIBUTE_NMTOKENS (integer)   
XML_ATTRIBUTE_ENUMERATION (integer)   
XML_ATTRIBUTE_NOTATION (integer)   
XPATH_UNDEFINED (integer)   
XPATH_NODESET (integer)   
XPATH_BOOLEAN (integer)   
XPATH_NUMBER (integer)   
XPATH_STRING (integer)   
XPATH_POINT (integer)   
XPATH_RANGE (integer)   
XPATH_LOCATIONSET (integer)   
XPATH_USERS (integer)   
XPATH_NUMBER (integer)   

クラス

モジュールの API は、DOM レベル 2 標準に可能な限り基づいています。 結果的に API は完全にオブジェクト指向です。このモジュールを使用する際に DOM 標準が利用できることは望ましいことです。 この API はオブジェクト指向ですが、 最初の引数として処理するオブジェクトを渡すことによってコールできる、 オブジェクト指向でない関数も多くあります。 これらの関数は、主に過去のバージョンとの互換性確保のために維持されていますが、 新規開発での使用はもはや推奨されません。
この API は、公式な DOM API とは二つの点で異なっています。まず、 全てのクラスの属性は、同じ名前を有する関数として実装され、関数名は PHP の命名表記に基づいています。これは、DOM 関数 lastChild() が last_child() と書かれることを意味します。
このモジュールは、一連のクラスを定義します。メソッドも含めたリストを 以下の表に示します。クラスは、DOM 標準で DOMxxx という名前のものと等価です。
表 69. クラスの一覧
クラス名親クラス
DomAttributeDomNode
DomCDataDomNode
DomCommentDomCData : DomNode
DomDocumentDomNode
DomDocumentTypeDomNode
DomElementDomNode
DomEntityDomNode
DomEntityReferenceDomNode
DomProcessingInstructionDomNode
DomTextDomCData : DomNode
Parser現在はまだ DomParser と呼ばれています
XPathContext 


表 70. DomDocument クラス (DomDocument : DomNode)
メソッド名関数名注意
doctypeDomDocument_doctype() 
document_elementDomDocument_document_element() 
create_elementDomDocument_create_element() 
create_text_nodeDomDocument_create_text_node() 
create_commentDomDocument_create_comment() 
create_cdata_sectionDomDocument_create_cdata_section() 
create_processing_instructionDomDocument_create_processing_instruction() 
create_attributeDomDocument_create_attribute() 
create_entity_referenceDomDocument_create_entity_reference() 
get_elements_by_tagnameDomDocument_get_elements_by_tagname() 
get_element_by_idDomDocument_get_element_by_id() 
dump_memDomDocument_dump_mem()DOM 標準ではありません
dump_fileDomDocument_dump_file()DOM 標準ではありません
html_dump_memDomDocument_html_dump_mem()DOM 標準ではありません
xpath_initxpath_initDOM 標準ではありません
xpath_new_contextxpath_new_contextDOM 標準ではありません
xptr_new_contextxptr_new_contextDOM 標準ではありません


表 71. DomElement クラス (DomElement : DomNode)
メソッド名関数名注意
tagnameDomElement_tagname() 
get_attributeDomElement_get_attribute() 
set_attributeDomElement_set_attribute() 
remove_attributeDomElement_remove_attribute() 
get_attribute_nodeDomElement_get_attribute_node() 
set_attribute_nodeDomElement_set_attribute_node() 
get_elements_by_tagnameDomElement_get_elements_by_tagname() 
has_attributeDomElement_has_attribute() 


表 72. 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 標準ではありません


表 73. DomAttribute クラス (DomAttribute : DomNode)
メソッド名 注意
nameDomAttribute_name() 
valueDomAttribute_value() 
specifiedDomAttribute_specified() 


表 74. DomProcessingInstruction クラス (DomProcessingInstruction : DomNode)
メソッド名関数名注意
targetDomProcessingInstruction_target() 
dataDomProcessingInstruction_data() 


表 75. Parser クラス
メソッド名関数名注記
add_chunkParser_add_chunk() 
endParser_end() 


表 76. XPathContext クラス
メソッド名関数名注記
evalXPathContext_eval() 
eval_expressionXPathContext_eval_expression() 
register_nsXPathContext_register_ns() 


表 77. DomDocumentType クラス (DomDocumentType : DomNode)
メソッド名関数名注記
nameDomDocumentType_name() 
entitiesDomDocumentType_entities() 
notationsDomDocumentType_notations() 
public_idDomDocumentType_public_id() 
system_idDomDocumentType_system_id() 
internal_subsetDomDocumentType_internal_subset() 


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

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


目次

DomAttribute->name — 属性の名前を返す
DomAttribute->set_value — 属性の値を設定する
DomAttribute->specified — 属性が指定されているかどうか調べる
DomAttribute->value — 属性の値を返す
DomDocument->add_root — ルートノードを追加する [推奨されません]
DomDocument->create_attribute — 新規属性を作成する
DomDocument->create_cdata_section — 新規 cdata ノードを作成する
DomDocument->create_comment — 新規コメントノードを作成する
DomDocument->create_element_ns — 関連する名前空間を持つ新規要素ノードを作成する
DomDocument->create_element — 新規要素ノードを作成する
DomDocument->create_entity_reference — エンティティ参照を作成する
DomDocument->create_processing_instruction — 新規 PI ノードを作成する
DomDocument->create_text_node — 新規テキストノードを作成する
DomDocument->doctype — 文章型を返す
DomDocument->document_element — ルート要素ノードを返す
DomDocument->dump_file — 内部 XML ツリーをファイルにダンプする
DomDocument->dump_mem — 内部 XML ツリーを文字列にダンプする
DomDocument->get_element_by_id — 特定の ID を持つ要素を検索する
DomDocument->get_elements_by_tagname — 文章中に与えられたタグ名を持つノードの配列を返す。 もしくは、見つからない場合は空の配列を返す
DomDocument->html_dump_mem — HTML として文字列に内部 XML ツリーをダンプする
DomDocument->xinclude — DomDocument オブジェクトにおける XIncludes の代替
DomDocumentType->entities() — エンティティの一覧を返す
DomDocumentType->internal_subset() — 内部サブセットを返す
DomDocumentType->name() — 文章型の名前を返す
DomDocumentType->notations() — ノーテーションの一覧を返す
DomDocumentType->public_id() — 文章型の PUBLIC ID を返す
DomDocumentType->system_id() — 文章型のSYSTEM ID を返す
DomElement->get_attribute_node() — 与えられた属性のノードを返す
DomElement->get_attribute() — 与えられた属性の値を返す
DomElement->get_elements_by_tagname() — タグ名により要素を取得する
DomElement->has_attribute() — 現在のノードに属性があるかどうかを調べる
DomElement->remove_attribute() — 属性を削除する
DomElement->set_attribute_node() — 新規属性を追加する
DomElement->set_attribute() — 属性値を設定する
DomElement->tagname() — 現在の要素名を返す
DomNode->add_namespace — ノードに名前空間宣言を追加する
DomNode->append_child — 子ノードの最後に新規に子ノードを追加する
DomNode->append_sibling — 新規に兄弟をノードに追加する
DomNode->attributes — 属性の一覧を返す
DomNode->child_nodes — 子ノードを返す
DomNode->clone_node — ノードを複製する
DomNode->dump_node — 単一ノードをダンプする
DomNode->first_child — 最初の子ノードを返す
DomNode->get_content — ノードの内容を取得する
DomNode->has_attributes — ノードが属性を有しているかを調べる
DomNode->has_child_nodes — ノードが子ノードを有しているかを調べる
DomNode->insert_before — 新規ノードを子ノードとして挿入する
DomNode->is_blank_node — ノードが空かどうかを調べる
DomNode->last_child — 最後の子ノードを返す
DomNode->next_sibling — 次の兄弟ノードを返す
DomNode->node_name — ノード名を返す
DomNode->node_type — ノードの型を返す
DomNode->node_value — ノードの値を返す
DomNode->owner_document — このノードが属する文章を返す
DomNode->parent_node — 親ノードを返す
DomNode->prefix — ノードの名前空間接頭辞を返す
DomNode->previous_sibling — 前の兄弟ノードを返す
DomNode->remove_child — 子ノードのリストから子ノードを削除する
DomNode->replace_child — 子ノードを置換する
DomNode->replace_node — ノードを置換する
DomNode->set_content — ノードの内容を設定する
DomNode->set_name — ノード名を設定する
DomNode->set_namespace — ノードの名前空間を設定する
DomNode->unlink_node — ノードを削除する
DomProcessingInstruction->data — PI ノードのデータを返す
DomProcessingInstruction->target — PI ノードのターゲットを返す
DomXsltStylesheet->process() — DomDocument オブジェクトに XSLT 変換を適用する
DomXsltStylesheet->result_dump_file() — XSLT 変換の結果をファイルにダンプする
DomXsltStylesheet->result_dump_mem() — XSLT 変換の結果を文字列にダンプする
domxml_new_doc — 空の新規 XMLドキュメントを作成する
domxml_open_file — XML ファイルから DOM オブジェクトを作成する
domxml_open_mem — XML 文章から DOM オブジェクトを作成する
domxml_version — XML ライブラリのバージョンを取得する
domxml_xmltree — XML 文章から PHP オブジェクトツリーを作成する
domxml_xslt_stylesheet_doc — DomDocument オブジェクトから DomXsltStylesheet オブジェクトを作成する
domxml_xslt_stylesheet_file — ファイル中の XSL 文章から DomXsltStylesheet オブジェクトを作成する
domxml_xslt_stylesheet — 文字列での XSL 文章から DomXsltStylesheet オブジェクトを作成する
domxml_xslt_version — XSLT ライブラリのバージョンを取得する
xpath_eval_expression — 与えられた文字列で XPath のロケーションパスを評価する
xpath_eval — 与えられた文字列で XPath のロケーションパスを評価する
xpath_new_context — 新規 xpath コンテキストを作成する
xpath_register_ns_auto — 与えられた XPath コンテキストに与えられた名前空間を登録する
xpath_register_ns — 与えられた XPath コンテキストに与えられた名前空間を登録する
xptr_eval — 指定した文字列の XPtr ロケーションパスを評価する
xptr_new_context — 新規 XPath コンテキストを作成する

「DOM XML 関数」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DOM XML 関数」の関連用語

DOM XML 関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DOM XML 関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS