DOMImplementation::createDocument()
(PHP 5, PHP 7)
Creates a DOMDocument object of the specified type with its document element
说明
public DOMImplementation::createDocument([string $namespaceURI=NULL
[,string $qualifiedName=NULL
[,DOMDocumentType$doctype=NULL
]]]): DOMDocument
Creates a DOMDocument object of the specified type with its document element.
参数
- $namespaceURI
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$namespaceURI,$qualifiedName, and$doctypeare null, the returned DOMDocument is empty with no document element
错误/异常
DOM_WRONG_DOCUMENT_ERR
Raised if$doctypehas 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$namespaceURIand$qualifiedName.
此方法可以被静态调用,但会抛出一个E_STRICT
错误。
参见
- DOMDocument::__construct() Creates a new DOMDocument object
- DOMImplementation::createDocumentType() Creates an empty DOMDocumentType object
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>
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 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.