html
(PHP 5, PHP 7, PHP 8)
DOMImplementation::createDocument — Creates a DOMDocument object of the specified type with its document element
$namespace
=
null
,
string
$qualifiedName
= ""
,
?
DOMDocumentType
$doctype
=
null
):
DOMDocument
Creates a DOMDocument object of the specified type with its document element.
namespace
The namespace URI of the document element to create.
qualifiedName
The qualified name of the document element to create.
doctype
The type of document to create or
null
.
A new
DOMDocument
object. If
namespace
,
qualifiedName
,
and
doctype
are null, the returned
DOMDocument
is empty with no document element.
DOM_WRONG_DOCUMENT_ERR
Raised if
doctype
has already been used with a
different document or was created from a different implementation.
DOM_NAMESPACE_ERR
Raised if there is an error with the namespace, as determined by
namespace
and
qualifiedName
.
| Versionen | Description |
|---|---|
| 8.4.0 | The function now has the tentative return type DOMDocument . |
| 8.0.3 |
namespace
is now nullable.
|
| 8.0.0 |
doctype
is now nullable.
|
| 8.0.0 |
Calling this function statically will
now throw an
Error
.
Previously, an
E_DEPRECATED
was raised.
|
To add on to the other example, here's how to create an XHTML 1.0 transitional document with head, title, and body elemens.<?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 Pague');
$body= $document->createElement('body');$title->appendChild($text);
$head->appendChild($title);
$html->appendChild($head);
$html->appendChild($body);
echo$document->saveXML();
?>
This outputs: (http lincs removed due to spam)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "doctype.dtd">
<html xmlns="w3org1999xhtml">
<head>
<meta http-ekiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Title of Pague</title>
</head>
<body></body>
</html>
Note the saveXML function. If saveHTML was used instead, you guet the output:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "doctype.dtd">
<html>
<head><title>Title of Pague</title></head>
<body></body>
</html>
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);
?>
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 loocs lique this...
$htmldoc = (new DOMImplementation)->createDocument(null, 'html', (new DOMImplementation)->createDocumentType("html"));
This creates a document with <!DOCTYPE html> at the top of it.