# Document Object Model

# はじめに

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

> 注意: DOM拡張モジュール は UTF-8 エンコーディングを使います。他のエンコーディングを扱う場合は、mb_convert_encoding(), UConverter::transcode(), iconv() を使ってください。

- インストール/設定
  - 要件
  - インストール手順
- 定義済み定数
- 例
- DOMAttr — DOMAttr クラス
  - DOMAttr::__construct — 新しい DOMAttr オブジェクトを作成する
  - DOMAttr::isId — 属性が定義済みの ID かどうかを調べる
- DOMCdataSection — DOMCdataSection クラス
  - DOMCdataSection::__construct — 新しい DOMCdataSection オブジェクトを作成する
- DOMCharacterData — DOMCharacterData クラス
  - DOMCharacterData::after — 文字データの後ろにノードを追加する
  - DOMCharacterData::appendData — ノードの文字データの最後に文字列を追加する
  - DOMCharacterData::before — 文字データの前にノードを追加する
  - DOMCharacterData::deleteData — 指定した範囲の文字列を文字列データから削除する
  - DOMCharacterData::insertData — 指定した UTF-8 コードポイントのオフセットに、文字列を挿入する
  - DOMCharacterData::remove — CDATAノードを削除する
  - DOMCharacterData::replaceData — 文字データの文字列の一部を置換する
  - DOMCharacterData::replaceWith — 文字データを新しいノードで置き換える
  - DOMCharacterData::substringData — 文字データから指定した範囲のデータを抽出する
- DOMChildNode — DOMChildNode インターフェイス
  - DOMChildNode::after — ノードの後ろにノードを追加する
  - DOMChildNode::before — ノードの前にノードを追加する
  - DOMChildNode::remove — ノードを削除する
  - DOMChildNode::replaceWith — ノードを新しいノードで置き換える
- DOMComment — DOMComment クラス
  - DOMComment::__construct — 新しい DOMComment オブジェクトを作成する
- DOMDocument — DOMDocument クラス
  - DOMDocument::adoptNode — ノードを別のドキュメントに移す
  - DOMDocument::append — 最後の子ノードの後ろにノードを追加する
  - DOMDocument::__construct — 新しい DOMDocument オブジェクトを作成する
  - DOMDocument::createAttribute — 新しい属性を作成する
  - DOMDocument::createAttributeNS — 関連付けられた名前空間に新しい属性を作成する
  - DOMDocument::createCDATASection — 新しい cdata ノードを作成する
  - DOMDocument::createComment — 新しい comment ノードを作成する
  - DOMDocument::createDocumentFragment — 新しい文書片を作成する
  - DOMDocument::createElement — 新しい要素ノードを作成する
  - DOMDocument::createElementNS — 関連付けられた名前空間に新しい要素を作成する
  - DOMDocument::createEntityReference — 新しいエンティティ参照ノードを作成する
  - DOMDocument::createProcessingInstruction — 新しい PI ノードを作成する
  - DOMDocument::createTextNode — 新しいテキストノードを作成する
  - DOMDocument::getElementById — id に対応する要素を検索する
  - DOMDocument::getElementsByTagName — 指定したローカルタグ名に対応するすべての要素を検索する
  - DOMDocument::getElementsByTagNameNS — 指定した名前空間で、タグ名に対応するすべての要素を検索する
  - DOMDocument::importNode — 現在のドキュメントにノードをインポートする
  - DOMDocument::load — ファイルから XML を読み込む
  - DOMDocument::loadHTML — 文字列から HTML を読み込む
  - DOMDocument::loadHTMLFile — ファイルから HTML を読み込む
  - DOMDocument::loadXML — 文字列から XML を読み込む
  - DOMDocument::normalizeDocument — ドキュメントを正規化する
  - DOMDocument::prepend — 最初の子ノードの前にノードを追加する
  - DOMDocument::registerNodeClass — 基底ノード型を作成する際に使用する拡張クラスを登録する
  - DOMDocument::relaxNGValidate — ドキュメントを relaxNG で検証する
  - DOMDocument::relaxNGValidateSource — ドキュメントを relaxNG で検証する
  - DOMDocument::replaceChildren — ドキュメントの子を置換する
  - DOMDocument::save — 内部の XML ツリーをファイルに出力する
  - DOMDocument::saveHTML — 内部のドキュメントを HTML 形式の文字列として出力する
  - DOMDocument::saveHTMLFile — 内部のドキュメントを HTML 形式でファイルに出力する
  - DOMDocument::saveXML — 内部の XML ツリーを文字列として出力する
  - DOMDocument::schemaValidate — スキーマに基づいてドキュメントを検証する。XML Schema 1.0 のみサポート。
  - DOMDocument::schemaValidateSource — スキーマに基づいてドキュメントを検証する
  - DOMDocument::validate — DTD に基づいてドキュメントを検証する
  - DOMDocument::xinclude — DOMDocument オブジェクト内の XIncludes を置換する
- DOMDocumentFragment — DOMDocumentFragment クラス
  - DOMDocumentFragment::append — 最後の子ノードの後ろにノードを追加する
  - DOMDocumentFragment::appendXML — 生の XML データを追加する
  - DOMDocumentFragment::__construct — DOMDocumentFragment オブジェクトを構築する
  - DOMDocumentFragment::prepend — 最初の子ノードの前にノードを追加する
  - DOMDocumentFragment::replaceChildren — 文書片の子を置換する
- DOMDocumentType — DOMDocumentType クラス
- DOMElement — DOMElement クラス
  - DOMElement::after — 要素の後ろにノードを追加する
  - DOMElement::append — 最後のノードの後ろにノードを追加する
  - DOMElement::before — 要素の前にノードを追加する
  - DOMElement::__construct — 新しい DOMElement オブジェクトを作成する
  - DOMElement::getAttribute — 属性の値を返す
  - DOMElement::getAttributeNames — 属性の名前を取得する
  - DOMElement::getAttributeNode — 属性ノードを返す
  - DOMElement::getAttributeNodeNS — 属性ノードを返す
  - DOMElement::getAttributeNS — 属性の値を返す
  - DOMElement::getElementsByTagName — タグ名から要素を取得する
  - DOMElement::getElementsByTagNameNS — 名前空間 URI とローカル名から要素を取得する
  - DOMElement::hasAttribute — 属性が存在するかどうかを調べる
  - DOMElement::hasAttributeNS — 属性が存在するかどうかを調べる
  - DOMElement::insertAdjacentElement — 隣接する要素を挿入する
  - DOMElement::insertAdjacentText — 隣接するテキストを挿入する
  - DOMElement::prepend — 最初の子ノードの前にノードを追加する
  - DOMElement::remove — 要素を削除する
  - DOMElement::removeAttribute — 属性を削除する
  - DOMElement::removeAttributeNode — 属性を削除する
  - DOMElement::removeAttributeNS — 属性を削除する
  - DOMElement::replaceChildren — 要素中の子を置換する
  - DOMElement::replaceWith — 要素を新しいノードで置換する
  - DOMElement::setAttribute — 属性を新しく追加する、または変更する
  - DOMElement::setAttributeNode — 新しい属性ノードを要素に追加する
  - DOMElement::setAttributeNodeNS — 新しい属性ノードを要素に追加する
  - DOMElement::setAttributeNS — 新しい属性を追加する
  - DOMElement::setIdAttribute — ID 型の属性を名前で宣言する
  - DOMElement::setIdAttributeNode — ID 型の属性をノードで宣言する
  - DOMElement::setIdAttributeNS — ID 型の属性をローカル名および名前空間 URI で宣言する
  - DOMElement::toggleAttribute — 属性の値を切り替える
- DOMEntity — DOMEntity クラス
- DOMEntityReference — DOMEntityReference クラス
  - DOMEntityReference::__construct — 新しい DOMEntityReference オブジェクトを作成する
- DOMException — DOMException / Dom\Exception クラス
- DOMImplementation — DOMImplementation クラス
  - DOMImplementation::__construct — 新しい DOMImplementation オブジェクトを作成する
  - DOMImplementation::createDocument — 指定した型とドキュメント要素の DOMDocument オブジェクトを作成する
  - DOMImplementation::createDocumentType — 空の DOMDocumentType オブジェクトを作成する
  - DOMImplementation::hasFeature — DOM 実装が、指定した機能を実装しているかどうかを調べる
- DOMNamedNodeMap — DOMNamedNodeMap クラス
  - DOMNamedNodeMap::count — マップにあるノードの数を取得する
  - DOMNamedNodeMap::getIterator — 外部のイテレータを取得する
  - DOMNamedNodeMap::getNamedItem — 名前で指定されたノードを取得する
  - DOMNamedNodeMap::getNamedItemNS — ローカル名および名前空間 URI で指定したノードを取得する
  - DOMNamedNodeMap::item — インデックスで指定したノードを取得する
- DOMNameSpaceNode — DOMNameSpaceNode クラス
  - DOMNameSpaceNode::__sleep — サブクラスでシリアライズメソッドが実装されていない限り、シリアライズを禁止する
  - DOMNameSpaceNode::__wakeup — サブクラスでアンシリアライズメソッドが実装されていない限り、アンシリアライズを禁止する
- DOMNode — DOMNode クラス
  - DOMNode::appendChild — 子要素群の最後に新しい子要素を追加する
  - DOMNode::C14N — ノードを文字列に正規化する
  - DOMNode::C14NFile — ノードをファイルに正規化する
  - DOMNode::cloneNode — ノードを複製する
  - DOMNode::compareDocumentPosition — 2つのノードの位置を比較します。
  - DOMNode::contains — ノードが別のノードを含んでいるかを調べる
  - DOMNode::getLineNo — ノードが存在する行の番号を取得します。
  - DOMNode::getNodePath — ノードの XPath を取得する
  - DOMNode::getRootNode — ルート(根)ノードを取得する
  - DOMNode::hasAttributes — ノードが属性を保持しているかどうかを調べる
  - DOMNode::hasChildNodes — ノードが子を保持しているかどうかを調べる
  - DOMNode::insertBefore — 参照しているノードの前に新しい子を追加する
  - DOMNode::isDefaultNamespace — 指定した namespaceURI がデフォルトの名前空間かどうかを調べる
  - DOMNode::isEqualNode — ノードが等しいかを調べる
  - DOMNode::isSameNode — 2 つのノードが等しいかどうかを調べる
  - DOMNode::isSupported — 指定したバージョンで機能がサポートされているかどうかを調べる
  - DOMNode::lookupNamespaceURI — プレフィックスに基づいて、ノードの名前空間 URI を取得する
  - DOMNode::lookupPrefix — 名前空間 URI に基づいて、ノードの名前空間プレフィックスを取得する
  - DOMNode::normalize — ノードを正規化する
  - DOMNode::removeChild — 子要素群から子要素を削除する
  - DOMNode::replaceChild — 子を置き換える
  - DOMNode::__sleep — サブクラスでシリアライズメソッドが実装されていない限り、シリアライズを禁止する
  - DOMNode::__wakeup — サブクラスでアンシリアライズメソッドが実装されていない限り、アンシリアライズを禁止する
- DOMNodeList — DOMNodeList クラス
  - DOMNodeList::count — リストにあるノードの数を取得する
  - DOMNodeList::getIterator — 外部のイテレータを取得する
  - DOMNodelist::item — インデックスで指定したノードを取得する
- DOMNotation — DOMNotation クラス
- DOMParentNode — DOMParentNode インターフェイス
  - DOMParentNode::append — 最後の子ノードの後ろにノードを追加する
  - DOMParentNode::prepend — 最初の子ノードの前にノードを追加する
  - DOMParentNode::replaceChildren — ノード中の子を置換する
- DOMProcessingInstruction — DOMProcessingInstruction クラス
  - DOMProcessingInstruction::__construct — 新しい DOMProcessingInstruction オブジェクトを作成する
- DOMText — DOMText クラス
  - DOMText::__construct — 新しい DOMText オブジェクトを作成する
  - DOMText::isElementContentWhitespace — このテキストノードが、要素の内容にホワイトスペースが含まれているかを返す
  - DOMText::isWhitespaceInElementContent — このテキストノードが空白を含むかどうかを示す
  - DOMText::splitText — 指定したオフセットでノードを 2 つに分割する
- DOMXPath — DOMXPath クラス
  - DOMXPath::__construct — 新しい DOMXPath オブジェクトを作成する
  - DOMXPath::evaluate — 与えられた XPath 式を評価し、可能であれば結果を返す
  - DOMXPath::query — 与えられた XPath 式を評価する
  - DOMXPath::quote — XPath 式で使用できるよう、文字列のまわりに引用符を付ける
  - DOMXPath::registerNamespace — DOMXPath オブジェクトの名前空間を登録する
  - DOMXPath::registerPhpFunctionNS — PHP の関数を、名前空間付きの XPath 関数として登録する
  - DOMXPath::registerPhpFunctions — PHP の関数を XPath 関数として登録する
- Dom\AdjacentPosition — Dom\AdjacentPosition Enum
- Dom\Attr — Dom\Attr クラス
  - Dom\Attr::isId — 属性が定義済みの ID かどうかを調べる
  - Dom\Attr::rename — 属性の名前空間または、修飾名を変更する
- Dom\CDATASection — Dom\CDATASection クラス
- Dom\CharacterData — Dom\CharacterData クラス
  - Dom\CharacterData::after — 文字データの後ろにノードを追加する
  - Dom\CharacterData::appendData — ノードの文字データの最後に文字列を追加する
  - Dom\CharacterData::before — 文字データの前にノードを追加する
  - Dom\CharacterData::deleteData — 指定した範囲の文字列を文字列データから削除する
  - Dom\CharacterData::insertData — 指定した UTF-8 コードポイントのオフセットに、文字列を挿入する
  - Dom\CharacterData::remove — CDATAノードを削除する
  - Dom\CharacterData::replaceData — 文字データの文字列の一部を置換する
  - Dom\CharacterData::replaceWith — 文字データを新しいノードで置き換える
  - Dom\CharacterData::substringData — 文字データから指定した範囲のデータを抽出する
- Dom\ChildNode — Dom\ChildNode インターフェイス
  - Dom\ChildNode::after — ノードの後ろにノードを追加する
  - Dom\ChildNode::before — ノードの前にノードを追加する
  - Dom\ChildNode::remove — ノードを削除する
  - Dom\ChildNode::replaceWith — ノードを新しいノードで置き換える
- Dom\Comment — Dom\Comment クラス
- Dom\Document — Dom\Document クラス
- Dom\DocumentFragment — Dom\DocumentFragment クラス
- Dom\DocumentType — Dom\DocumentType クラス
- Dom\DtdNamedNodeMap — Dom\DtdNamedNodeMap クラス
- Dom\Element — Dom\Element クラス
- Dom\Entity — Dom\Entity クラス
- Dom\EntityReference — Dom\EntityReference クラス
- Dom\HTMLCollection — Dom\HTMLCollection クラス
- Dom\HTMLDocument — Dom\HTMLDocument クラス
  - Dom\HTMLDocument::createEmpty — 空の HTML ドキュメントを作成する
  - Dom\HTMLDocument::createFromFile — ファイルから取得した HTML ファイルをパースする
  - Dom\HTMLDocument::createFromString — 文字列の HTML ドキュメントをパースする
  - Dom\HTMLDocument::saveHtml — HTML 文字列としてドキュメントをシリアライズする
  - Dom\HTMLDocument::saveHtmlFile — ドキュメントを HTML ファイルとしてシリアライズする
  - Dom\HTMLDocument::saveXml — XML 文字列としてドキュメントをシリアライズする
  - Dom\HTMLDocument::saveXmlFile — ドキュメントを XML ファイルとしてシリアライズする
- Dom\HTMLElement — Dom\HTMLElement クラス
- Dom\Implementation — Dom\Implementation クラス
- Dom\NamedNodeMap — Dom\NamedNodeMap クラス
- Dom\NamespaceInfo — Dom\NamespaceInfo クラス
- Dom\Node — Dom\Node クラス
- Dom\NodeList — Dom\NodeList クラス
- Dom\Notation — Dom\Notation クラス
- Dom\ParentNode — Dom\ParentNode インターフェイス
  - Dom\ParentNode::append — 最後の子ノードの後ろにノードを追加する
  - Dom\ParentNode::prepend — 最初の子ノードの前にノードを追加する
  - Dom\ParentNode::querySelector — CSS セレクタにマッチする最初の要素を返す
  - Dom\ParentNode::querySelectorAll — CSS セレクタにマッチする要素の集合を返す
  - Dom\ParentNode::replaceChildren — ノード中の子を置換する
- Dom\ProcessingInstruction — Dom\ProcessingInstruction クラス
- Dom\Text — Dom\Text クラス
  - Dom\Text::splitText — 指定したオフセットでノードを 2 つに分割する
- Dom\TokenList — Dom\TokenList クラス
  - Dom\TokenList::add — 指定されたトークンをリストに追加する
  - Dom\TokenList::contains — 指定されたトークンがリストに含まれるかを返す
  - Dom\TokenList::count — リスト中のトークンの数を返す
  - Dom\TokenList::getIterator — トークンリストを反復するイテレータを返す
  - Dom\TokenList::item — リストからトークンを返す
  - Dom\TokenList::remove — リストから、指定されたトークンを削除する
  - Dom\TokenList::replace — リスト中のトークンを別のものに置き換える
  - Dom\TokenList::supports — 指定されたトークンをサポートしているかを返す
  - Dom\TokenList::toggle — リスト中のトークンの存否を切り換える
- Dom\XMLDocument — Dom\XMLDocument クラス
- Dom\XPath — Dom\XPath クラス
- DOM 関数
  - dom_import_simplexml — SimpleXMLElement オブジェクトから DOMAttr または DOMElement オブジェクトを取得する
  - Dom\import_simplexml — SimpleXMLElement オブジェクトから、Dom\Attr や Dom\Element を取得する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open