DOMImplementation::createDocument
(PHP 5, PHP 7)
DOMImplementation::createDocument — Создает объект класса DOMDocument заданного типа с элементом document
Описание
$namespaceURI
= NULL
[, string $qualifiedName
= NULL
[, DOMDocumentType $doctype
= NULL
]]] )Создает объект класса DOMDocument заданного типа с элементом document.
Список параметров
-
namespaceURI
-
URI пространства имен элемента document.
-
qualifiedName
-
Имя элемента document.
-
doctype
-
Тип элемента document или
NULL
.
Возвращаемые значения
Новый объект класса DOMDocument. Если аргументы
namespaceURI
, qualifiedName
,
и doctype
имеют значение null, возвращаемый объект
DOMDocument будет пустым, без элементов document.
Ошибки
-
DOM_WRONG_DOCUMENT_ERR
-
Возникает, если аргумент
doctype
уже был использован с другим документом или был создан в другой реализации. -
DOM_NAMESPACE_ERR
-
Возникает, если обнаружена ошибка в строках
namespaceURI
иqualifiedName
.
Этот метод
может быть вызван статически, но при этом будет сгенерирована ошибка
уровня E_STRICT
.
Смотрите также
- DOMDocument::__construct() - Создание нового DOMDocument объекта
- DOMImplementation::createDocumentType() - Создает пустой объект класса DOMDocumentType
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Обработка XML
- Document Object Model
- Функция DOMImplementation::__construct() - Создает новый объект класса DOMImplementation
- Функция DOMImplementation::createDocument() - Создает объект класса DOMDocument заданного типа с элементом document
- Функция DOMImplementation::createDocumentType() - Создает пустой объект класса DOMDocumentType
- Функция DOMImplementation::hasFeature() - Тестирует реализацию специфичных возможностей объекта DOMImplementation
Коментарии
To create HTML document with doctype:
<?php
$doctype = DOMImplementation::createDocumentType("html",
"-//W3C//DTD HTML 4.01//EN",
"http://www.w3.org/TR/html4/strict.dtd");
$doc = DOMImplementation::createDocument(null, 'html', $doctype);
?>
To add on to the other example, here's how to create an XHTML 1.0 transitional document with head, title, and body elements.
<?php
$document = DOMImplementation::createDocument(null, 'html',
DOMImplementation::createDocumentType("html",
"-//W3C//DTD XHTML 1.0 Transitional//EN",
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"));
$document->formatOutput = true;
$html = $document->documentElement;
$head = $document->createElement('head');
$title = $document->createElement('title');
$text = $document->createTextNode('Title of Page');
$body = $document->createElement('body');
$title->appendChild($text);
$head->appendChild($title);
$html->appendChild($head);
$html->appendChild($body);
echo $document->saveXML();
?>
This outputs: (http links removed due to spam)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "doctype.dtd">
<html xmlns="w3org1999xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Title of Page</title>
</head>
<body></body>
</html>
Note the saveXML function. If saveHTML was used instead, you get the output:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "doctype.dtd">
<html>
<head><title>Title of Page</title></head>
<body></body>
</html>
I just recently got an error, having to do with deprecation, by using the type of calls in the other example listed here. What I had to do instead looks like this...
$htmldoc = (new DOMImplementation)->createDocument(null, 'html', (new DOMImplementation)->createDocumentType("html"));
This creates a document with <!DOCTYPE html> at the top of it.