Оказывается, что в PHP (и, следовательно, в libxml) вы можете добавлять и удалять объекты DOMDocumentType в существующий документ, как обычные узлы, используя такие методы, как $document->insertBefore()
и $document->removeChild()
и т. Д.
Кажется, работает нормально - изменение его приводит к изменению значения $ document-> doctype и всего остального.Это довольно недокументировано, хотя и противоречит стандарту W3 DOM, который говорит, что это не должно быть возможно (по крайней мере, в DOM Level 2).Но удобно знать, что вы можете сделать это в PHP.
Один недостаток - saveHTML () не «видит» новый тип документа, хотя saveXML () делает.