未封闭的img标签问题

数据以HTML格式呈现并提交给服务器,进行一些预处理。

它使用“img”标签的“src”属性进行操作。

在预处理和保存之后,所有预处理的“img”标签都不是自动关闭的。

例如,如果“img”标记如下:

 

在使用Nokogiri或Hpricot进行预处理后,它将是:

  

代码非常简单:

 doc = Hpricot(self.content) doc.search("img").each do |tag| preprocess tag end self.content = doc.to_html 

对于Nokorigi来说,它看起来是一样的。

如何解决这个问题?


更新1

忘了提 – 我有HTML 5页面,我试图用W3C Validatorvalidation 。

当“img”标签位于div内时,它会抱怨以下内容:

 required character (found d) (expected i) 

例如,尝试validation以下代码:

       

你会得到同样的错误:

 Line 9, Column 4: required character (found d) (expected i) 

我认为问题在于你的 ,它将xmlns属性作为XHTML进行delcare。 这似乎与它不是XHTML文档的事实相矛盾。 如果删除此xmlns属性,则该属性应该有效。

     something here   

问题是您的库生成了正确的HTML,并且HTML中的尾部“/”不正确。 除非您正在提供application / xhtml + xml,否则完全没有任何意义 – 在所有版本的HTML中IMG标记都是自动关闭的,而“/”是没有意义的。 如果您正在提供application / xhtml + xml,我认为您需要明确使用Nokogiri的to_xhtml

在您委派的预处理function中,您是否无法控制每个img标签? 你能不能返回它已经返回的内容并添加一个明确的close标签?

Interesting Posts