DOMDocument クラス

はじめに

HTML ドキュメントあるいは XML ドキュメント全体を表し、 ドキュメントツリーのルートとなります。

クラス概要

DOMDocument
extends DOMNode
implements DOMParentNode
/* プロパティ */
public readonly DOMDocumentTypenull $doctype;
public readonly DOMImplementation $implementation;
public readonly DOMElementnull $documentElement;
public readonly stringnull $actualEncoding;
public stringnull $encoding;
public readonly stringnull $xmlEncoding;
public bool $standalone;
public bool $xmlStandalone;
public stringnull $version;
public stringnull $xmlVersion;
public bool $strictErrorChecking;
public stringnull $documentURI;
public readonly mixed $config;
public bool $formatOutput;
public bool $validateOnParse;
public bool $resolveExternals;
public bool $preserveWhiteSpace;
public bool $recover;
public bool $substituteEntities;
public readonly DOMElementnull $firstElementChild;
public readonly DOMElementnull $lastElementChild;
public readonly int $childElementCount;
/* 継承したプロパティ */
public readonly string $nodeName;
public stringnull $nodeValue;
public readonly int $nodeType;
public readonly DOMNodenull $parentNode;
public readonly DOMElementnull $parentElement;
public readonly DOMNodeList $childNodes;
public readonly DOMNodenull $firstChild;
public readonly DOMNodenull $lastChild;
public readonly DOMNodenull $previousSibling;
public readonly DOMNodenull $nextSibling;
public readonly DOMNamedNodeMapnull $attributes;
public readonly bool $isConnected;
public readonly DOMDocumentnull $ownerDocument;
public readonly stringnull $namespaceURI;
public string $prefix;
public readonly stringnull $localName;
public readonly stringnull $baseURI;
public string $textContent;
/* メソッド */
public DOMDocument::__construct(string $version = "1.0", string $encoding = "")
public DOMNodefalse DOMDocument::adoptNode(DOMNode $node)
public void DOMDocument::append(DOMNodestring ...$nodes)
public DOMAttrfalse DOMDocument::createAttribute(string $localName)
public DOMAttrfalse DOMDocument::createAttributeNS(stringnull $namespace, string $qualifiedName)
public DOMCdataSectionfalse DOMDocument::createCDATASection(string $data)
public DOMComment DOMDocument::createComment(string $data)
public DOMDocumentFragment DOMDocument::createDocumentFragment()
public DOMElementfalse DOMDocument::createElement(string $localName, string $value = "")
public DOMElementfalse DOMDocument::createElementNS(stringnull $namespace, string $qualifiedName, string $value = "")
public DOMEntityReferencefalse DOMDocument::createEntityReference(string $name)
public DOMProcessingInstructionfalse DOMDocument::createProcessingInstruction(string $target, string $data = "")
public DOMText DOMDocument::createTextNode(string $data)
public DOMElementnull DOMDocument::getElementById(string $elementId)
public DOMNodeList DOMDocument::getElementsByTagName(string $qualifiedName)
public DOMNodeList DOMDocument::getElementsByTagNameNS(stringnull $namespace, string $localName)
public DOMNodefalse DOMDocument::importNode(DOMNode $node, bool $deep = false)
public bool DOMDocument::load(string $filename, int $options = 0)
public bool DOMDocument::loadHTML(string $source, int $options = 0)
public bool DOMDocument::loadHTMLFile(string $filename, int $options = 0)
public bool DOMDocument::loadXML(string $source, int $options = 0)
public void DOMDocument::normalizeDocument()
public void DOMDocument::prepend(DOMNodestring ...$nodes)
public true DOMDocument::registerNodeClass(string $baseClass, stringnull $extendedClass)
public bool DOMDocument::relaxNGValidate(string $filename)
public bool DOMDocument::relaxNGValidateSource(string $source)
public void DOMDocument::replaceChildren(DOMNodestring ...$nodes)
public intfalse DOMDocument::save(string $filename, int $options = 0)
public stringfalse DOMDocument::saveHTML(DOMNodenull $node = null)
public intfalse DOMDocument::saveHTMLFile(string $filename)
public stringfalse DOMDocument::saveXML(DOMNodenull $node = null, int $options = 0)
public bool DOMDocument::schemaValidate(string $filename, int $flags = 0)
public bool DOMDocument::schemaValidateSource(string $source, int $flags = 0)
public bool DOMDocument::validate()
public intfalse DOMDocument::xinclude(int $options = 0)
/* 継承したメソッド */
public DOMNodefalse appendChild(DOMNode $node)
public stringfalse C14N(
    bool $exclusive = false,
    bool $withComments = false,
    arraynull $xpath = null,
    arraynull $nsPrefixes = null
)
public intfalse C14NFile(
    string $uri,
    bool $exclusive = false,
    bool $withComments = false,
    arraynull $xpath = null,
    arraynull $nsPrefixes = null
)
public DOMNodefalse cloneNode(bool $deep = false)
public int compareDocumentPosition(DOMNode $other)
public bool contains(DOMNodeDOMNameSpaceNodenull $other)
public int getLineNo()
public stringnull getNodePath()
public DOMNode getRootNode(arraynull $options = null)
public bool hasAttributes()
public bool hasChildNodes()
public DOMNodefalse insertBefore(DOMNode $node, DOMNodenull $child = null)
public bool isDefaultNamespace(string $namespace)
public bool isEqualNode(DOMNodenull $otherNode)
public bool isSameNode(DOMNode $otherNode)
public bool isSupported(string $feature, string $version)
public stringnull lookupNamespaceURI(stringnull $prefix)
public stringnull lookupPrefix(string $namespace)
public void normalize()
public DOMNodefalse removeChild(DOMNode $child)
public DOMNodefalse replaceChild(DOMNode $node, DOMNode $child)
public array __sleep()
public void __wakeup()

プロパティ

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::loadoptionLIBXML_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 を使うと、結果は空オブジェクトをエンコードしたものになります。

目次