DOM 関数

導入

DOM 拡張モジュールを使用すると、DOM API を使用した XML ドキュメントの操作を PHP 5 で行えます。

PHP 4 では DOM XML を使用します。

注意: DOM 拡張モジュールは UTF-8 エンコーディングを使用します。ISO-8859-1 エンコーディングのテキストを扱うには utf8_encode()utf8_decode() を使用します。またその他のエンコーディングを扱うには Iconv を使用します。

インストール手順

PHP コアに含まれるため、 追加のインストール無しで使用できます。

定義済みクラス

このモジュールの API は、» DOM Level 3 の標準規格と可能な限り 一致させています。そのため、API は完全にオブジェクト指向となっています。 このモジュールを使用する際は、DOM 標準規格を意識することが大切です。

このモジュールで定義されている多くのクラスについて以下の表で説明します。 DOM 標準規格に相当するクラスについては DOMxxx という名前がつけられています。

DOMAttr

DOMNode を継承します。DOMAttr インターフェースは、DOMElement オブジェクトの 属性を表します。

コンストラクタ

メソッド

  • DOMAttr->isId() - 属性が定義済みの ID であるかどうかを調べる

プロパティ

名前 読み込み専用 説明
name string yes 属性の名前
ownerElement DOMElement yes 属性を保持する要素
schemaTypeInfo bool yes 未実装です。常に NULL を返します。
specified bool yes 未実装です。常に NULL を返します。
value string no 属性の値

DOMCharacterData

DOMNode を継承します。

メソッド

プロパティ

名前 読み込み専用 説明
data string no ノードの内容
length int yes 内容の長さ

DOMComment

DOMCharacterData を継承します。

コンストラクタ

DOMDocument

DOMNode を継承します。

コンストラクタ

メソッド

プロパティ

名前 読み込み専用 説明
actualEncoding string yes  
config DOMConfiguration yes  
doctype DOMDocumentType yes このドキュメントに関連付けられた文書型宣言
documentElement DOMElement yes ドキュメントの子ノードであるドキュメント要素に対し、 直接アクセスするために便利な属性
documentURI string no ドキュメントの位置。未定義の場合は NULL
encoding string no  
formatOutput bool no  
implementation DOMImplementation yes このドキュメントを処理する DOMImplementation オブジェクト
preserveWhiteSpace bool no 余分な空白を取り除かない。デフォルトは TRUE
recover bool no  
resolveExternals bool no 文書型宣言で外部エンティティを読み込む際に TRUE を設定する。 XML ドキュメントに文字エンティティを含める際に便利です。
standalone bool no  
strictErrorChecking bool no エラー時に DOMException をスローする。デフォルトは TRUE
substituteEntities bool no  
validateOnParse bool no DTD を読み込んで検証する。デフォルトは FALSE
version string no  
xmlEncoding string yes XML 宣言の一部として、このドキュメントのエンコーディングを 指定する属性。指定されていない場合や不明な場合 (たとえば ドキュメントがメモリ上に存在する場合など) は NULL
xmlStandalone bool no XML 宣言の一部として、このドキュメントがスタンドアローンか どうかを指定する。指定されていない場合は FALSE
xmlVersion string no XML 宣言の一部として、このドキュメントのバージョン番号を指定する。 バージョン番号が定義されておらず、ドキュメントが "XML" の機能を サポートしている場合は、値は "1.0"

DOMDocumentFragment

DOMNode を継承します。

メソッド

DOMDocumentType

DOMNode を継承します。

DOMDocumentdoctype 属性を保持しており、その値は NULL あるいは DOMDocumentType オブジェクトです。

プロパティ

名前 読み込み専用 説明
publicId string yes 外部サブセットの公開 ID
systemId string yes 外部サブセットのシステム ID。完全 URI である場合とそうでない場合がある。
name string yes DTD の名前。すなわち、DOCTYPE キーワードに続く値
entities DOMNamedNodeMap yes DTD で宣言されている一般エンティティ (外部・内部とも) を含む DOMNamedNodeMap
notations DOMNamedNodeMap yes DTD で宣言されている記法を含む DOMNamedNodeMap
internalSubset string yes 内部サブセットを文字列として取得する。存在しない場合は null となる。区切りの角括弧は含まない。

DOMElement

DOMNode を継承します。

コンストラクタ

メソッド

プロパティ

名前 読み込み専用 説明
schemaTypeInfo bool yes 未実装。常に NULL を返す。
tagName string yes 要素名

DOMEntity

DOMNode を継承します。

このインターフェースは、XML ドキュメント内の既知のエンティティを表します。 パース済みかどうかは関係ありません。

プロパティ

名前 読み込み専用 説明
publicId string yes エンティティに関連付けられているパブリック ID が存在すればその値、 それ以外の場合は NULL
systemId string yes エンティティに関連付けられているシステム ID が存在すればその値、 それ以外の場合は NULL。これは完全な URI かもしれないし、 そうでないかもしれない。
notationName string yes パースされていないエンティティの場合はそのエンティティの名前、 パース済みのエンティティの場合は NULL
actualEncoding string no 外部でパースされたエンティティの場合は、このエンティティの パース時に使用されたエンコーディングを指定する属性。内部 サブセットからのエンティティであったり未知のエンティティで あった場合は NULL
encoding string yes 外部でパースされたエンティティの場合は、テキスト宣言の一部として このエンティティのエンコーディングを指定する属性。それ以外の 場合は NULL
version string yes 外部でパースされたエンティティの場合は、テキスト宣言の一部として このエンティティのバージョン番号を指定する属性。それ以外の場合は NULL

DOMEntityReference

DOMNode を継承します。

コンストラクタ

DOMException

しかるべき状況、すなわち論理的に不可能な操作を行った際などの場合に DOM 操作は例外を発生させます。

例外(exceptions) も参照ください。

プロパティ

名前 読み込み専用 説明
code int yes 発生したエラーの型を示す整数値

DOMImplementation

DOMImplementation インターフェースは、個々の ドキュメントオブジェクトモデルのインスタンス独自の操作を行うための メソッド群を提供します。

コンストラクタ

メソッド

DOMNamedNodeMap

メソッド

DOMNode

メソッド

プロパティ

名前 読み込み専用 説明
nodeName string yes 現在のノード型の正確な名前を返す
nodeValue string no その型に応じてノードの値を返す
nodeType int yes ノードの型を、定義済みの定数 XML_xxx_NODE のいずれかで返す
parentNode DOMNode yes このノードの親を返す
childNodes DOMNodeList yes このノードのすべての子を含む DOMNodeList。 子が存在しない場合は、空の DOMNodeList
firstChild DOMNode yes このノードの最初の子。存在しない場合は NULL を返す
lastChild DOMNode yes このノードの最後の子。存在しない場合は NULL を返す
previousSibling DOMNode yes このノードの直前のノード。存在しない場合は NULL を返す
nextSibling DOMNode yes このノードの直後のノード。存在しない場合は NULL を返す
attributes DOMNamedNodeMap yes このノードが DOMElement の場合は ノードの属性を含む DOMNamedNodeMap、 それ以外の場合は NULL
ownerDocument DOMDocument yes このノードに関連付けられている DOMDocument オブジェクト
namespaceURI string yes このノードの名前空間 URI。指定されていない場合は NULL
prefix string no このノードの名前空間プレフィックス。指定されていない場合は NULL
localName string yes このノードの名前のローカル部分を返す
baseURI string yes このノードの完全なベース URI。もし実装が完全な URL を できなかった場合は NULL
textContent string no このノードとその子孫ノードのテキストを返す

DOMNodeList

メソッド

プロパティ

名前 読み込み専用 説明
length int yes リスト内のノードの数。有効な子ノードのインデックスの範囲は 0 以上 length - 1 以下

DOMNotation

DOMNode を継承します。

プロパティ

名前 読み込み専用 説明
publicId string yes  
systemId string yes  

DOMProcessingInstruction

DOMNode を継承します。

コンストラクタ

プロパティ

名前 読み込み専用 説明
target string yes  
data string no  

DOMText

DOMCharacterData を継承します。

コンストラクタ

メソッド

プロパティ

名前 読み込み専用 説明
wholeText string yes  

DOMXPath

コンストラクタ

メソッド

プロパティ

名前 読み込み専用 説明
document DOMDocument    

このリファレンスの多くの例では XML ファイルを使用します。その際には、 以下のような形式の book.xml を使用します。

Example#1 book.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book id="listing">
 <title>My lists</title>
 <chapter id="books">
  <title>My books</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Title</entry>
       <entry>Author</entry>
       <entry>Language</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: I have a lot of remaining books to add.. -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

XML 定数
定数 説明
XML_ELEMENT_NODE (integer) 1 ノードは DOMElement です。
XML_ATTRIBUTE_NODE (integer) 2 ノードは DOMAttr です。
XML_TEXT_NODE (integer) 3 ノードは DOMText です。
XML_CDATA_SECTION_NODE (integer) 4 ノードは DOMCharacterData です。
XML_ENTITY_REF_NODE (integer) 5 ノードは DOMEntityReference です。
XML_ENTITY_NODE (integer) 6 ノードは DOMEntity です。
XML_PI_NODE (integer) 7 ノードは DOMProcessingInstruction です。
XML_COMMENT_NODE (integer) 8 ノードは DOMComment です。
XML_DOCUMENT_NODE (integer) 9 ノードは DOMDocument です。
XML_DOCUMENT_TYPE_NODE (integer) 10 ノードは DOMDocumentType です。
XML_DOCUMENT_FRAG_NODE (integer) 11 ノードは DOMDocumentFragment です。
XML_NOTATION_NODE (integer) 12 ノードは DOMNotation です。
XML_HTML_DOCUMENT_NODE (integer) 13  
XML_DTD_NODE (integer) 14  
XML_ELEMENT_DECL_NODE (integer) 15  
XML_ATTRIBUTE_DECL_NODE (integer) 16  
XML_ENTITY_DECL_NODE (integer) 17  
XML_NAMESPACE_DECL_NODE (integer) 18  
XML_ATTRIBUTE_CDATA (integer) 1  
XML_ATTRIBUTE_ID (integer) 2  
XML_ATTRIBUTE_IDREF (integer) 3  
XML_ATTRIBUTE_IDREFS (integer) 4  
XML_ATTRIBUTE_ENTITY (integer) 5  
XML_ATTRIBUTE_NMTOKEN (integer) 7  
XML_ATTRIBUTE_NMTOKENS (integer) 8  
XML_ATTRIBUTE_ENUMERATION (integer) 9  
XML_ATTRIBUTE_NOTATION (integer) 10  
DOMException 定数
定数 説明
DOM_INDEX_SIZE_ERR (integer) 1 インデックスあるいはサイズが負です。または上限を超えています。
DOMSTRING_SIZE_ERR (integer) 2 指定したテキストは DOMString 内に収まりません。
DOM_HIERARCHY_REQUEST_ERR (integer) 3 そのノードが所属できない場所に挿入されました。
DOM_WRONG_DOCUMENT_ERR (integer) 4 ノードが、もともと作成されたのと別のドキュメントで使用されました。
DOM_INVALID_CHARACTER_ERR (integer) 5 名前などで、不正な文字が指定されました。
DOM_NO_DATA_ALLOWED_ERR (integer) 6 データをサポートしていないノードでデータが指定されました。
DOM_NO_MODIFICATION_ALLOWED_ERR (integer) 7 変更が許可されていないオブジェクトを変更しようとしました。
DOM_NOT_FOUND_ERR (integer) 8 存在しないノードを参照しようとしました。
DOM_NOT_SUPPORTED_ERR (integer) 9 指定した型のオブジェクトや操作は、この実装ではサポートしていません。
DOM_INUSE_ATTRIBUTE_ERR (integer) 10 別の場所で使用中の属性を追加しようとしました。
DOM_INVALID_STATE_ERR (integer) 11 現在使用できない、あるいは使用できなくなったオブジェクトを 使用しようとしました。
DOM_SYNTAX_ERR (integer) 12 不正な文字列が指定されました。
DOM_INVALID_MODIFICATION_ERR (integer) 13 基底オブジェクトの型を変更しようとしました。
DOM_NAMESPACE_ERR (integer) 14 名前空間に存在しないオブジェクトを作成または変更しようとしました。
DOM_INVALID_ACCESS_ERR (integer) 15 パラメータや操作は基底オブジェクトではサポートされていません。
DOM_VALIDATION_ERR (integer) 16 insertBefore や removeChild のようなメソッドのコールによってノードの 「部分的な妥当性」が満たされなくなった際にこの例外が発生し、操作は 行われません。

PHPマニュアル検索

ナビゲーション

関数リスト

同一レベル項目

MaxDB PHP 拡張モジュール
Mhash 関数
GeoIP 関数
Sybase 関数
ストリーム関数
イメージ関数(image)
GNU Recode 関数
Ovrimos SQL 関数
XSL 関数
正規表現関数(Perl 互換)
Fileinfo 関数
ディレクトリ関数
Cyrus IMAP 管理関数
ID3 関数
文字型 (ctype) 関数
MySQL 改良版拡張サポート(mysqli)
SimpleXML関数
PostgreSQL 関数 (PDO_PGSQL)
DBM 関数 [非推奨]
XMLWriter 関数
Secure Shell2 関数
クラック関数 (Crack)
XSLT 関数
Tokenizer 関数
IMAP、POP3 および NNTP 関数
DB++ 関数
OpenSSL 関数
filePro 関数
エラー処理およびログ記録関数
ソケット関数
gnupg 関数
SNMP 関数
ネットワーク関数
Informix 関数
配列関数(array)
runkit 関数
XML-RPC 関数
Memcache 関数
Microsoft SQL Server および Sybase 関数 (PDO_DBLIB)
Net_Gopher
W32api 関数
関数処理関数(funchand)
CCVS API 関数 [非推奨]
vpopmail 関数
Firebird/Interbase 関数 (PDO_FIREBIRD)
Subversion 関数
DOM 関数
Ncurses 端末画面制御関数
Oracle 関数
IRC Gateway 関数
Advanced PHP Debugger (APD)
enchant 関数
その他の関数(Misc)
Classkit 関数
PHP / Java の連携
出力制御関数(output control)
PostgreSQL 関数
Pspell 関数
oggvorbis
Apache専用の関数
BBCode 関数
Rar 関数
POSIX 関数
XML パーサ関数
Oracle 関数 (PDO_OCI)
LDAP 関数
Bzip2 圧縮関数
マルチバイト文字列関数 (mbstring)
ダイレクト IO (DIO) 関数
ファイルシステム関数
NSAPI用関数
win32service 関数
Informix 関数 (PDO_INFORMIX)
CURL, Client URL Library 関数
Satellite CORBA クライアント拡張 [推奨されません]
Tidy 関数
セッション処理関数(session)
OpenAL 音声バインディング
Expect 関数
Haru PDF 関数
Phar アーカイブストリームおよびクラス
URL 関数
zlib 圧縮関数
IBM 関数 (PDO_IBM)
libxml 関数
共有メモリ関数(shmop)
FTP 関数
Credit Mutuel CyberMUT 関数
.NET 関数
XMLReader 関数
Unified ODBC 関数
MySQL 関数
変数操作関数(Variable Handling)
IIS 管理関数
BCMath任意精度数学関数
i18n (国際化) 関数
Zip ファイル関数
win32ps 関数
dBase 関数
Imagick 画像ライブラリ
xattr 関数
YAZ 関数
Alternative PHP Cache (APC)
統計関数
SDO XML データアクセスサービス関数
オブジェクトプロパティとメソッドコールのオーバーロード
Mohawk Software セッションハンドラ関数
フィルタ関数
RPM ヘッダ読み込み関数
メール関数(Mail)
TCP ラッパ関数(TCP Wrappers)
SAM - Simple Asynchronous Messaging: 単純な非同期メッセージング
Oracle 関数 [推奨されません]
ODBC および DB2 関数 (PDO_ODBC)
Mcrypt 暗号化関数
PHP バイトコードコンパイラ (bcompiler)
mSQL 関数
Standard PHP Library (SPL) 関数
セマフォ・共有メモリおよび IPC 関数(semaphore)
SESAM データベース関数
GMP 関数
Radius
Newt 関数
日付・時刻関数
Parsekit 関数
Verisign Payflow Pro 関数
クラス/オブジェクト関数
Paradox ファイルアクセス
Unicode 関数
JSON 関数
Swish 関数
数学関数(Math)
mnoGoSearch 関数
Firebird/InterBase 関数
xdiff 関数
オブジェクトの集約/合成関数
Forms Data Format 関数
SOAP関数
KADM5
ハッシュ関数
Lotus Notes 関数
LZF 関数
Mimetype 関数
SCA 関数
YP/NIS 関数
ファイル改変監視関数(FAM)
ClibPDF 関数 [非推奨]
Cybercash 支払関数
Aspell関数(古い拡張モジュール)
PostgreSQL セッション保存ハンドラ
PDF 関数
カレンダー関数
プリンタ関数
Exif 関数
SQLite 関数
Shockwave Flash 関数
GNU Readline
Strings(文字列関数)
Mailparse 関数
Flash 用 Ming 関数
Microsoft SQL Server 関数
DOM XML 関数
SDO 関数
Hyperwave 関数
WDDX 関数
MCAL 関数
プロセス制御関数
SDO リレーショナルデータアクセスサービス関数
Hyperwave API 関数
FriBiDi 関数
プログラム実行関数
正規表現(regex)関数 (POSIX拡張サポート)
IBM DB2、Cloudscape および Apache Derby 関数
Ingres II 関数
(dbm 型の)データベース抽象化レイヤ関数
COM と .Net (Windows)
HTTP
PDO 関数
PHP オプションと情報(info)
qtdom 関数
muscat 関数
iconv 関数
MCVE (Monetra) 支払い関数
dbx 関数
SQLite 関数 (PDO_SQLITE)
MySQL 関数 (PDO_MYSQL)
Gettext 関数
PostScript ドキュメントの作成
FrontBase 関数
PHPマニュアル@apis
| PEARマニュアル | Smartyマニュアル | PostgreSQLマニュアル |