DOMDocument クラス
(PHP 5, PHP 7, PHP 8)
はじめに
HTML ドキュメントあるいは XML ドキュメント全体を表し、 ドキュメントツリーのルートとなります。
クラス概要
$namespace
, string $qualifiedName
, string $value
= ""): DOMElement|false$target
, string $data
= ""): DOMProcessingInstruction|falsebool
$exclusive
= false
,bool
$withComments
= false
,?array
$xpath
= null
,?array
$nsPrefixes
= null
): string|false
プロパティ
- actualEncoding
-
非推奨。ドキュメントの実際のエンコーディング。 読み込み専用で、 encoding と同等の内容です。
- childElementCount
-
子要素の数
- config
-
非推奨。 DOMDocument::normalizeDocument() を実行する際に使用する設定。
- doctype
-
このドキュメントに関連付けられた文書型宣言
- documentElement
-
最初のドキュメント要素を示す DOMElement オブジェクト。 存在しない場合は
null
になります。 - documentURI
-
ドキュメントの位置。未定義の場合は
null
- encoding
-
XML 宣言で指定したドキュメントのエンコーディング。 この属性は、DOM Level 3 の最終的な仕様には存在しません。 しかし、この実装で XML ドキュメントのエンコーディングを扱うにはこれを使用するしかありません。
- firstElementChild
-
最初の子要素。存在しない場合は
null
になります。 - formatOutput
-
字下げや空白を考慮してきれいに整形した出力を行う。 これは、ドキュメントを preserveWhitespace を有効にして読み込んだ場合は効果がありません。
- implementation
-
このドキュメントを処理する DOMImplementation オブジェクト
- lastElementChild
-
最後の子要素。存在しない場合は
null
になります。 - preserveWhiteSpace
-
余分な空白を取り除かない。デフォルトは
true
false
に設定すると、 DOMDocument::load() のoption
にLIBXML_NOBLANKS
を渡すのと同じ効果があります。 - recover
-
非標準。 リカバリーモードを有効にし、整形式でないドキュメントのパースを試みます。 この属性は DOM の仕様にはなく、libxml 固有の独自仕様です。
- resolveExternals
-
文書型宣言で外部エンティティを読み込む際に
true
を設定する。 XML ドキュメントに文字エンティティを含める際に便利です。 - standalone
-
非推奨。 そのドキュメントがスタンドアローンかどうかを XML 宣言で指定したもの。 xmlStandalone に対応します。
- strictErrorChecking
-
エラー時に DOMException をスローする。デフォルトは
true
- substituteEntities
-
非標準。 エンティティの置換を行うかどうか。 この属性は DOM の仕様にはなく、libxml 固有の独自仕様です。 デフォルトは
false
です。警告エンティティの置換を有効にすると、XML外部エンティティ参照攻撃(XXE) を容易にしてしまうかもしれません。
- validateOnParse
-
DTD を読み込んで検証する。デフォルトは
false
警告DTD の検証を有効にすると、XML外部エンティティ参照攻撃(XXE) を容易にしてしまうかもしれません。
- version
-
非推奨。 XML のバージョン。 xmlVersion に対応します。
- xmlEncoding
-
XML 宣言の一部として、このドキュメントのエンコーディングを 指定する属性。指定されていない場合や不明な場合 (たとえば ドキュメントがメモリ上に存在する場合など) は
null
- xmlStandalone
-
XML 宣言の一部として、このドキュメントがスタンドアローンか どうかを指定する。指定されていない場合は
false
スタンドアローンドキュメントとは、 外部のマークアップ宣言を持たないドキュメントのことです。 スタンドアローンドキュメントの例としては、 DTD がデフォルトの値で宣言されているものが挙げられます。 - xmlVersion
-
XML 宣言の一部として、このドキュメントのバージョン番号を指定する。 バージョン番号が定義されておらず、ドキュメントが "XML" の機能を サポートしている場合は、値は "1.0"
変更履歴
バージョン | 説明 |
---|---|
8.0.0 | DOMDocument は、 DOMParentNode を実装しました。 |
8.0.0 | 実装されていなかったメソッド DOMDocument::renameNode() が削除されました。 |
注意
注意:
DOM拡張モジュール は UTF-8 エンコーディングを使います。他のエンコーディングを扱う場合は、mb_convert_encoding(), UConverter::transcode(), iconv() を使ってください。
注意:
DOMDocument オブジェクトに対して json_encode() を使うと、結果は空オブジェクトをエンコードしたものになります。