PHP 8.4.15 Released!

DOMImplementation::createDocument

(PHP 5, PHP 7, PHP 8)

DOMImplementation::createDocument Cria um objeto DOMDocument do tipo especificado com seu elemento de documento

Descrição

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

Cria um objeto DOMDocument do tipo especificado com seu elemento de documento.

Parâmetros

namespace

O URI do namespace do elemento de documento a ser criado.

qualifiedName

O nome qualificado do elemento de documento a ser criado.

doctype

O tipo de documento a ser criado ou null.

Valor Retornado

Um novo objeto DOMDocument. Se namespace, qualifiedName, e doctype forem nulos, o DOMDocument retornado estará vazio, sem elemento de documento.

Erros/Exceções

DOM_WRONG_DOCUMENT_ERR

Gerado se doctype já foi usado em um documento diferente ou foi criado por uma implementação diferente.

DOM_NAMESPACE_ERR

Gerado se houver um erro com o namespace, conforme determinado por namespace e qualifiedName.

Registro de Alterações

Versão Descrição
8.4.0 A função agora tem um tipo de retorno provisório de DOMDocument.
8.0.3 namespace agora é anulável.
8.0.0 doctype agora é anulável.
8.0.0 Chamar esta função estaticamente agora lançará um Error. Anteriormente, era gerado um E_DEPRECATED.

Veja Também

adicionar nota

Notas de Usuários 3 notes

up
9
eboyjr
15 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
2
arturm at union dot com dot pl
19 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
0
sleistico at gmail dot com
7 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.
To Top