【问题标题】:nokogiri and video tagsnokogiri 和视频标签
【发布时间】:2010-11-13 13:41:27
【问题描述】:

一些 HTML 结构存储在服务器上。在保存之前,它们将被预处理。

预处理将 HTML 5 视频标签插入到特定位置。

我尝试这样做,但是,每次我处理视频标签时,我都会得到以下信息:

标记视频无效

我认为,这是因为我在调试器中看到的 HTML 4.0 DOCTYPE:

我也尝试使用 XML 作为解析器,但我不知道如何从 Nokogiri::XML 对象获取干净的 HTML 代码。

有什么想法吗?

【问题讨论】:

  • 一个代码示例显示您正在尝试做的事情会有很大帮助。

标签: ruby-on-rails html nokogiri html5-video


【解决方案1】:

首先,您可以在 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>

【讨论】:

    猜你喜欢
    • 2014-07-11
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2015-10-01
    • 1970-01-01
    相关资源
    最近更新 更多