downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DOMImplementation::hasFeature> <DOMImplementation::createDocument
[edit] Last updated: Fri, 23 Mar 2012

view this page in

DOMImplementation::createDocumentType

(PHP 5)

DOMImplementation::createDocumentType Creates an empty DOMDocumentType object

Opis

DOMDocumentType DOMImplementation::createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] )

Creates an empty DOMDocumentType object. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur.

Parametry

qualifiedName

The qualified name of the document type to create.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

Zwracane wartości

A new DOMDocumentType node with its ownerDocument set to NULL.

Błędy/Wyjątki

DOM_NAMESPACE_ERR

Raised if there is an error with the namespace, as determined by qualifiedName.

Ta metoda może być wywoływana statycznie, ale spowoduje błąd E_STRICT.

Przykłady

Przykład #1 Creating a document with an attached DTD

<?php

// Creates an instance of the DOMImplementation class
$imp = new DOMImplementation;

// Creates a DOMDocumentType instance
$dtd $imp->createDocumentType('graph''''graph.dtd');

// Creates a DOMDocument instance
$dom $imp->createDocument(""""$dtd);

// Set other properties
$dom->encoding 'UTF-8';
$dom->standalone false;

// Create an empty element
$element $dom->createElement('graph');

// Append the element
$dom->appendChild($element);

// Retrieve and print the document
echo $dom->saveXML();

?>

Powyższy przykład wyświetli:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Zobacz też:



add a note add a note User Contributed Notes DOMImplementation::createDocumentType
until-all-bytes-are-free at example dot org 09-Apr-2011 04:28
I had problems to use a DTD from a file. It needed to be resolved relatively and it contained characters that made DomDocument failed to resolve the file.

Encoding and an absolute filename did not help much. So I used the data:// streamwrapper ( http://php.net/manual/en/wrappers.data.php ) as a work-around:

<?php

// relative or absolute filename
$path = '...';

// convert file contents into a filename
$data = file_get_contents($path);
$systemId = 'data://text/plain;base64,'.base64_encode($data);

// ...

// Creates a DOMDocumentType instance
$dtd = $aImp->createDocumentType('qualified name', '', $systemId);

?>

Works like a charm.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites