DOMImplementation::createDocumentType
(No version information available, might be only in CVS)
DOMImplementation::createDocumentType — Creates an empty DOMDocumentType object
Описание
Creates an empty DOMDocumentType object. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur.
Список параметров
- qualifiedName
-
The qualified name of the document type to create.
- publicId
-
The external subset public identifier.
- systemId
-
The external subset system identifier.
Возвращаемые значения
A new DOMDocumentType node with its ownerDocument set to NULL.
Примеры
Пример #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();
?>
Результат выполнения данного примера:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE graph SYSTEM "graph.dtd"> <graph/>
Errors/Exceptions
- DOM_NAMESPACE_ERR
-
Raised if there is an error with the namespace, as determined by qualifiedName .
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Обработка XML
- Document Object Model
- Функция DOMImplementation::__construct() - Создает новый объект класса DOMImplementation
- Функция DOMImplementation::createDocument() - Создает объект класса DOMDocument заданного типа с элементом document
- Функция DOMImplementation::createDocumentType() - Создает пустой объект класса DOMDocumentType
- Функция DOMImplementation::hasFeature() - Тестирует реализацию специфичных возможностей объекта DOMImplementation
Коментарии
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 ( wrappers.data ) 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.