• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • DOMImplementation::createDocument()

    (PHP 5, PHP 7)

    Creates a DOMDocument object of the specified type with its document element

    说明

    publicDOMImplementation::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.