我正在使用 DOMDocument :: loadHTML将一些页面内容(已通过Tidy运行,但不一定是如果这是问题的根源)放入 DOMDocument

它出现了各种各样的错误:

  

ID x已在实体中定义,第X行

有没有办法让 DOMDocument (或Tidy)忽略或删除重复的元素ID,所以它实际上会创建 DOMDocument

感谢。 :)

有帮助吗?

解决方案

快速搜索主题会显示此错误报告:

http://bugs.php.net/bug.php?id=46136

最后一个回复说明如下:

  

您正在使用HTML 4规则加载   XHTML文档。使用load()   解析为XML或者的方法   libxml_use_internal_errors()函数   忽略警告。

我无法确定您是否因为相同的原因遇到此问题,因为您没有包含对正在加载的HTML页面的引用。在任何情况下,使用 libxml_use_internal_errors() 至少应该压制错误。

HTML文档中的ID是一般唯一,因此,最佳解决方案仍将验证您的文档,如果可能的话。

其他提示

根据定义,ID是唯一的。如果不是,则应使用类(也不应使用名称) 我怀疑你是否可以强制XML工具忽略重复的ID,这将使它们处理无效的XML文档。

使用例外处理重复的ID,并重命名第二个ID。 或者,可以将同一父元素的子元素中的元素与ID结合起来。

ID在XML文件中是唯一的(在XMLTree的rootElement中)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top