Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 防止save()覆盖xml文件中的dtd_Php_Xml_Dom_Dtd - Fatal编程技术网

Php 防止save()覆盖xml文件中的dtd

Php 防止save()覆盖xml文件中的dtd,php,xml,dom,dtd,Php,Xml,Dom,Dtd,我正在编写一个脚本,将节点添加到xml文件中。除此之外,我还制作了一个外部dtd来处理文件中的组织。但是,我编写的脚本在完成附加节点后会一直覆盖空xml文件中的dtd。我怎样才能阻止这种事情发生 代码: 看起来要做到这一点,您必须使用 DOMImplementation::createDocumentType 然后使用DOMImplementation创建一个空文档,传入刚才创建的DOMDocumentType,然后导入加载的文档。这篇帖子:这些评论看起来很有用 我猜这是因为在解析/验证之后

我正在编写一个脚本,将节点添加到xml文件中。除此之外,我还制作了一个外部dtd来处理文件中的组织。但是,我编写的脚本在完成附加节点后会一直覆盖空xml文件中的dtd。我怎样才能阻止这种事情发生

代码:


看起来要做到这一点,您必须使用

DOMImplementation::createDocumentType 
然后使用DOMImplementation创建一个空文档,传入刚才创建的DOMDocumentType,然后导入加载的文档。这篇帖子:这些评论看起来很有用

我猜这是因为在解析/验证之后,DTD不再是DOM的一部分,因此PHP无法在序列化文档时包含DTD


您是否使用DTD?XML模式可以通过属性链接(因此链接是DOM的一部分)。或者有松弛,可以通过处理指令链接。DTD有所有这些行李,作为SGML的保留。还有更好的选择。

看起来要做到这一点,您必须使用

DOMImplementation::createDocumentType 
然后使用DOMImplementation创建一个空文档,传入刚才创建的DOMDocumentType,然后导入加载的文档。这篇帖子:这些评论看起来很有用

我猜这是因为在解析/验证之后,DTD不再是DOM的一部分,因此PHP无法在序列化文档时包含DTD


您是否使用DTD?XML模式可以通过属性链接(因此链接是DOM的一部分)。或者有松弛,可以通过处理指令链接。DTD有所有这些行李,作为SGML的保留。还有更好的选择。

我不必使用DTD,但无论如何,我会阅读该博客,看看它是否有效。我不必使用DTD,但无论如何,我会阅读该博客,看看它是否有效。