某些HTML结构存储在服务器上。保存之前,它们将被预处理。
预处理将HTML 5视频标记插入特定位置。
我试图这样做,但是,每当我处理视频标签时,我都会关注:
标记视频无效
我认为,这是因为我在调试器中看到的HTML 4.0 DOCTYPE:
< !DOCTYPE html PUBLIC“ - // W3C // DTD HTML 4.0 Transitional // EN”
我也尝试使用XML作为解析器,但我无法弄清楚如何从Nokogiri :: XML对象中获取干净的HTML代码。
有什么想法吗?
答案 0 :(得分:0)
首先,您可以在XML文档上使用#to_html
(或#to_xhtml
)。但是,我不确定这是否必要。创建元素时,我没有收到任何“标记视频无效”错误。这是一个示例程序,展示了如何解析现有HTML4,注入视频元素以及再次获取HTML:
require 'nokogiri'
html = Nokogiri::HTML <<ENDHTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head><title>Sauceome</title></head>
<body><p class="video" id="foo"><!-- put vid here--></p></body></html>
ENDHTML
wrap = html.at('.video')
wrap.inner_html="<video src='#{wrap['id']}.mov'></video>"
puts html.to_html
#=> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
#=> <html>
#=> <head>
#=> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
#=> <title>Sauceome</title>
#=> </head>
#=> <body><p class="video" id="foo"><video src="foo.mov"></video></p></body>
#=> </html>