Класс DOMDocument

(PHP 5, PHP 7, PHP 8)

Введение

Представляет весь HTML- или XML-документ; корень дерева документа.

Обзор классов

classDOMDocumentextendsDOMNodeimplementsDOMParentNode {
publicreadonly?DOMDocumentType$doctype;
publicreadonly?string$actualEncoding;
publicreadonly?string$xmlEncoding;
publicreadonlymixed$config;
publicreadonlyint$childElementCount;
publicreadonlystring$nodeName;
publicreadonlyint$nodeType;
publicreadonly?DOMNode$parentNode;
publicreadonly?DOMElement$parentElement;
publicreadonlyDOMNodeList$childNodes;
publicreadonly?DOMNode$firstChild;
publicreadonly?DOMNode$lastChild;
publicreadonly?DOMNode$previousSibling;
publicreadonly?DOMNode$nextSibling;
publicreadonlybool$isConnected;
publicreadonly?string$namespaceURI;
publicreadonly?string$localName;
publicreadonly?string$baseURI;
public__construct(string$version = "1.0", string$encoding = "")
publicappend(DOMNode|string...$nodes): void
publiccreateAttributeNS(?string$namespace, string$qualifiedName): DOMAttr|false
publiccreateElement(string$localName, string$value = ""): DOMElement|false
publiccreateElementNS(?string$namespace, string$qualifiedName, string$value = ""): DOMElement|false
publicgetElementsByTagNameNS(?string$namespace, string$localName): DOMNodeList
publicimportNode(DOMNode$node, bool$deep = false): DOMNode|false
publicload(string$filename, int$options = 0): bool
publicloadHTML(string$source, int$options = 0): bool
publicloadHTMLFile(string$filename, int$options = 0): bool
publicloadXML(string$source, int$options = 0): bool
publicprepend(DOMNode|string...$nodes): void
publicregisterNodeClass(string$baseClass, ?string$extendedClass): bool
publicrelaxNGValidate(string$filename): bool
publicsave(string$filename, int$options = 0): int|false
publicsaveHTMLFile(string$filename): int|false
publicsaveXML(?DOMNode$node = null, int$options = 0): string|false
publicschemaValidate(string$filename, int$flags = 0): bool
publicschemaValidateSource(string$source, int$flags = 0): bool
publicvalidate(): bool
publicxinclude(int$options = 0): int|false
publicDOMNode::C14N(
    bool$exclusive = false,
    bool$withComments = false,
    ?array$xpath = null,
    ?array$nsPrefixes = null
): string|false
publicDOMNode::C14NFile(
    string$uri,
    bool$exclusive = false,
    bool$withComments = false,
    ?array$xpath = null,
    ?array$nsPrefixes = null
): int|false
publicDOMNode::isSameNode(DOMNode$otherNode): bool
publicDOMNode::isSupported(string$feature, string$version): bool
}

Свойства

actualEncoding

Устарело. Кодировка документа — доступный только для чтения эквивалент свойства encoding.

childElementCount

Количество дочерних элементов.

config

Устарело. Конфигурация, которая будет использована при вызове метода DOMDocument::normalizeDocument().

doctype

Объявление типа документа, которое соответствует этому документу.

documentElement

Объект DOMElement — первый элемент документа. Если не найден, оценивается как null. Удобный атрибут, который даёт прямой доступ к дочернему узлу как к элементу документа. Значение null, если не существует.

documentURI

Расположение документа или null, если оно не определено.

encoding

Кодировка документа, как указано в объявлении XML. Этого атрибута нет в последней спецификации DOM Level 3, но он — единственный способ манипулирования кодировкой XML-документа в этой реализации.

firstElementChild

Первый дочерний элемент или null.

formatOutput

Форматирует вывод, добавляя отступы и дополнительные пробелы. Не работает, если документ был загружен с включённым свойством preserveWhitespace.

implementation

Объект класса DOMImplementation, обрабатывающий этот документ.

lastElementChild

Последний дочерний элемент или null.

preserveWhiteSpace

Указание не убирать лишние пробелы и отступы. По умолчанию true. Установка этого значения в false даёт тот же эффект, что и передача константы LIBXML_NOBLANKS в качестве параметра option в метод DOMDocument::load() и т. д.

recover

Проприетарное свойство. Включает режим восстановления, то есть пытается разобрать некорректно составленные (non-well formed) документы. Этот атрибут не входит в спецификацию DOM и специфичен для модуля libxml.

resolveExternals

Устанавливают в true для загрузки внешних элементов из объявления типа документа. Полезен при включении элементов с символьными данными в XML-документ.

standalone

Устарело. Указание, что документ не зависит от других XML-документов, как указано в декларации XML, соответствует свойству xmlStandalone.

strictErrorChecking

Выбрасывает исключение DOMException в случае ошибок. По умолчанию true.

substituteEntities

Патентованное свойство. Указывает, заменять ли элементы документа. Этот атрибут не входит в спецификацию DOM и специфичен для модуля libxml. По умолчанию false.

Предостережение

Включение подмены сущностей способствует атакам XML External Entity (XXE).

validateOnParse

Загружает DTD и проверяет документ на соответствие. По умолчанию false.

Предостережение

Включение проверки DTD способствует атакам XML External Entity (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().

Замечание:

При использовании json_encode() для объекта DOMDocument будет получен результат кодирования пустого объекта.

Содержание

To Top