Можно ли использовать W3C DOM для создания узлов Document/DocType?

Мне интересно, есть ли способ создавать узлы DocType через W3C DOM? В спецификации прямо указано, что они доступны только для чтения и не могут быть отредактированы, но можно ли их создать?

http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927

Интерфейс документа, похоже, не имеет для него никакого метода создания:

http://www.w3.org/TR/DOM-Level-3-Core/core.html#i-Document

Возможно, более широкий вопрос: можно ли создать совершенно новый HTML-документ программно через DOM? Я знаю о document.createDocumentFragment(), но я имею в виду эквивалент корневого HTML-документа с определенным типом документа и т. д.


Обновление: похоже, что недавние Gecko и WebKit реализуют DOMImplementation.createDocument и DOMImplementation.createDocumentType, но не IE8 или ранее (не проверял IE9). Так что, к сожалению, я все еще застрял там.

Я также немного не уверен, что я могу сделать с этим новым экземпляром документа, когда он у меня будет. Все текущие методы DOM привязаны к объекту глобального документа, поэтому, похоже, нет способа заменить его новым.


person mckamey    schedule 18.11.2010    source источник


Ответы (1)


Вам нужен объект DOMImplementation. См. раздел Загрузка.

person Alohci    schedule 18.11.2010
comment
Я не вижу, как это отвечает на мой вопрос. Объект DOMImplementation позволяет запрашивать поддерживаемые модули DOM. Можете ли вы уточнить, как можно использовать это для создания новых экземпляров этих узлов? - person mckamey; 18.11.2010
comment
Реализация DOMI (w3.org/TR/DOM- Level-3-Core/core.html#ID-102161490) имеет методы createDocument и createDocumentType. - person Alohci; 18.11.2010
comment
А, ладно, похоже, вы можете получить один из этих объектов от document.implementation. Можно ли заменить текущий документ документом, созданным таким образом? - person mckamey; 19.11.2010
comment
Хотя я видел, как веб-страницы используют document.implementation, я никогда не использовал его сам, поэтому, извините, я не знаю. Вы хотите навсегда заменить текущий документ или переключаться между двумя или более документами вперед и назад? Возможно, вам лучше начать новый вопрос. - person Alohci; 19.11.2010
comment
Спасибо. Это новый вопрос о замене текущего документа: stackoverflow.com/questions/4297877 - person mckamey; 28.11.2010