题
我正在使用 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中)
不隶属于 StackOverflow