创建 DOMDocument 时DOMImplementation::createDocument() http://www.php.net/manual/en/domimplementation.createdocument.php,您可以指定文档类型作为构造函数中的第三个参数。然后,此文档类型会“绑定”到文档,您可以稍后使用以下命令检索它$document->doctype
.
但是,这是一个只读属性(与编码和版本不同!)。
有没有办法更改现有 DOMDocument 对象的 doctype 属性?
我能想到的唯一解决方法是使用新的文档类型创建一个新的 DOMDocument,然后导入然后复制旧文档中的内容。
事实证明,在 PHP 中(因此,我猜在 libxml 中),您可以使用以下方法向现有文档添加和删除 DOMDocumentType 对象,就像常规节点一样$document->insertBefore()
and $document->removeChild()
, etc.
似乎工作正常 - 更改它会更改 $document->doctype 值和所有内容。但它完全没有文档记录,并且与 W3 DOM 标准相矛盾,该标准表示它不应该是可能的(至少在 DOM Level 2 中)。但很高兴知道您可以用 PHP 来完成它。
一个缺点是 saveHTML() 无法“看到”新的文档类型,尽管 saveXML() 可以。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)