我正在使用DOMDocument
将一些页面内容(已通过Tidy运行,但不一定是因为这是问题的根源)进入DOMDocument::loadHTML
。
它出现了各种各样的错误:
ID x已在实体中定义,第X行
有没有办法让DOMDocument
(或Tidy)忽略或删除重复的元素ID,这样它实际上会创建DOMDocument
?
感谢。 :)
答案 0 :(得分:11)
快速搜索主题会显示此错误报告:
http://bugs.php.net/bug.php?id=46136
最后一个回复说明如下:
您正在使用HTML 4规则加载 XHTML文档。使用load() 解析为XML或者的方法 libxml_use_internal_errors()函数 忽略警告。
我无法确定您是否因为相同的原因遇到此问题,因为您没有包含对正在加载的HTML页面的引用。在任何情况下,使用libxml_use_internal_errors()
至少应该抑制错误。
HTML文档中的ID为generally unique,因此最佳解决方案仍会验证您的文档,如果可能的话。
答案 1 :(得分:0)
根据定义,ID是唯一的。如果不是,则应使用类(或名称,适用的地方) 我怀疑你是否可以强制XML工具忽略重复的ID,这将使它们处理无效的XML文档。
答案 2 :(得分:0)
使用例外处理重复的ID,并重命名第二个ID。 或者,将相同父元素的子元素中的元素与ID组合。
ID在XML文件中是唯一的(在XMLTree的rootElement中)