Клас DOMDocument
(PHP 5, PHP 7, PHP 8)
Вступ
Подає весь HTML- або XML-документ; корінь дерева документа.
Огляд класів
class DOMDocument
extends
DOMNode
implements
DOMParentNode {
/* Свойства */
public
readonly
?DOMDocumentType
$doctype;
public
readonly
DOMImplementation
$implementation;
public
readonly
?DOMElement
$documentElement;
public
readonly
?string
$actualEncoding;
public
?string
$encoding;
public
readonly
?string
$xmlEncoding;
public
bool
$standalone;
public
bool
$xmlStandalone;
public
?string
$version;
public
?string
$xmlVersion;
public
bool
$strictErrorChecking;
public
?string
$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
?DOMElement
$firstElementChild;
public
readonly
?DOMElement
$lastElementChild;
public
readonly
int
$childElementCount;
/* Наследуемые свойства */
public
readonly
string
$nodeName;
public
?string
$nodeValue;
public
readonly
int
$nodeType;
public
readonly
?DOMNode
$parentNode;
public
readonly
?DOMElement
$parentElement;
public
readonly
DOMNodeList
$childNodes;
public
readonly
?DOMNode
$firstChild;
public
readonly
?DOMNode
$lastChild;
public
readonly
?DOMNode
$previousSibling;
public
readonly
?DOMNode
$nextSibling;
public
readonly
?DOMNamedNodeMap
$attributes;
public
readonly
bool
$isConnected;
public
readonly
?DOMDocument
$ownerDocument;
public
readonly
?string
$namespaceURI;
public
string
$prefix;
public
readonly
?string
$localName;
public
readonly
?string
$baseURI;
public
string
$textContent;
/* Методы */
public __construct(string $version = "1.0", string $encoding = "")
public adoptNode(DOMNode $node): DOMNode|false
public append(DOMNode|string ...$nodes): void
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createCDATASection(string $data): DOMCdataSection|false
public createComment(string $data): DOMComment
public createDocumentFragment(): DOMDocumentFragment
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public createEntityReference(string $name): DOMEntityReference|false
public createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false
public createTextNode(string $data): DOMText
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $filename, int $options = 0): bool
public loadHTML(string $source, int $options = 0): bool
public loadHTMLFile(string $filename, int $options = 0): bool
public loadXML(string $source, int $options = 0): bool
public normalizeDocument(): void
public prepend(DOMNode|string ...$nodes): void
public registerNodeClass(string $baseClass, ?string $extendedClass): bool
public relaxNGValidate(string $filename): bool
public relaxNGValidateSource(string $source): bool
public replaceChildren(DOMNode|string ...$nodes): void
public save(string $filename, int $options = 0): int|false
public saveHTML(?DOMNode $node = null): string|false
public saveHTMLFile(string $filename): int|false
public saveXML(?DOMNode $node = null, int $options = 0): string|false
public schemaValidate(string $filename, int $flags = 0): bool
public schemaValidateSource(string $source, int $flags = 0): bool
public validate(): bool
public xinclude(int $options = 0): int|false
/* Наследуемые методы */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N( bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): string|false
public DOMNode::C14NFile( string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}
Властивості
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
Пропрієтарна властивість. Включає режим відновлення, тобто намагається розібрати некоректно складені документи. Цей атрибут не входить до специфікації 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
, якщо не вказано.
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 буде отримано результат кодування порожнього об'єкта.
Дивіться також
Зміст
- DOMDocument::adoptNode— Переносить вузол із іншого документа
- DOMDocument::append— Додає вузли після останнього дочірнього вузла
- DOMDocument::__construct— Створює новий об'єкт DOMDocument
- DOMDocument::createAttribute - Створює новий атрибут
- DOMDocument::createAttributeNS— Створює новий атрибут вузла із відповідним простором імен
- DOMDocument::createCDATASection - Створює новий вузол cdata
- DOMDocument::createComment - Створити новий вузол коментаря
- DOMDocument::createDocumentFragment - Створює новий фрагмент документа
- DOMDocument::createElement - Створює новий вузол елемента
- DOMDocument::createElementNS— Створити новий вузол елемента із відповідним простором імен
- DOMDocument::createEntityReference - Створити новий вузол посилання на сутність
- DOMDocument::createProcessingInstruction - Створити новий PI-вузол
- DOMDocument::createTextNode - Створити новий текстовий вузол
- DOMDocument::getElementById— Шукає елемент із певним ідентифікатором
- 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-схема 1.0.
- DOMDocument::schemaValidateSource— Перевіряє дійсність документа, ґрунтуючись на схемі
- DOMDocument::validate— Перевіряє документ на відповідність його DTD
- DOMDocument::xinclude— Вставляє XInclude в об'єкті DOMDocument.