略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: DOMImplementation::createDocument

2024-04-24

DOMImplementation::createDocument

(PHP 5, PHP 7, PHP 8)

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

说明

public DOMImplementation::createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false

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.

在 PHP 8.0.0 之前可以静态调用此方法,但会发出 E_DEPRECATED 错误。自 PHP 8.0.0 起,静态调用此方法会抛出 Error 异常

更新日志

版本 说明
8.0.3 namespace is now nullable.
8.0.0 doctype is now nullable.

参见

add a noteadd a note

User Contributed Notes 3 notes

up
6
eboyjr
11 years ago
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>
up
1
arturm at union dot com dot pl
16 years ago
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);
?>
up
-1
sleistico at gmail dot com
3 years ago
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.

官方地址:https://www.php.net/manual/en/domimplementation.createdocument.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3