DOMImplementation::createDocumentType
(PHP 5, PHP 7)
DOMImplementation::createDocumentType — Создает пустой объект класса DOMDocumentType
Описание
$qualifiedName
= NULL
[, string $publicId
= NULL
[, string $systemId
= NULL
]]] )Создает пустой объект класса DOMDocumentType. Объявления сущностей и условных обозначений будет недоступно. Ссылки на сущности не будут заменяться, и умолчания значений атрибутов не будут применены.
Список параметров
-
qualifiedName
-
Стандартизованное имя типа документа для создания.
-
publicId
-
Общедоступный идентификатор внешнего подмножества.
-
systemId
-
Системный идентификатор внешнего подмножества.
Возвращаемые значения
Новый объект класса DOMDocumentType с атрибутом
ownerDocument установленным в NULL
.
Ошибки
-
DOM_NAMESPACE_ERR
-
Возникает, если обнаружена ошибка в строке
qualifiedName
.
Этот метод
может быть вызван статически, но при этом будет сгенерирована ошибка
уровня E_STRICT
.
Примеры
Пример #1 Создание документа с прикрепленной DTD
<?php
// Создает экземпляр класса DOMImplementation
$imp = new DOMImplementation;
// Создает экземпляр класса DOMDocumentType
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');
// Создает объект DOMDocument
$dom = $imp->createDocument("", "", $dtd);
// установка других параметров
$dom->encoding = 'UTF-8';
$dom->standalone = false;
// создание пустого элемента
$element = $dom->createElement('graph');
// присоединение элемента
$dom->appendChild($element);
// извлечение и печать документа
echo $dom->saveXML();
?>
Результат выполнения данного примера:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE graph SYSTEM "graph.dtd"> <graph/>
Смотрите также
- DOMImplementation::createDocument() - Создает объект класса DOMDocument заданного типа с элементом document
- 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.