【问题标题】:Can Nokogiri use a SAX parser to parse an HTML fragment?Nokogiri 可以使用 SAX 解析器来解析 HTML 片段吗?
【发布时间】:2011-01-27 23:29:50
【问题描述】:

我有这个代码。

class MyParser < Nokogiri::XML::SAX::Document
  def characters(string)
    LOG.debug("characters #{string}")
  end

  def start_element(name, attrs = [])
    LOG.debug("start_element #{name}")
  end

  def end_element(name)
    LOG.debug("end_element #{name}")
  end
end

parser = Nokogiri::HTML::SAX::Parser.new(MyParser.new)
parser.parse(File.new($*[0], 'rb'))

在这样的 HTML 片段上运行,

<h1>Hello</h1> 
<p>Hi.</p>

输出显示只处理了第一个元素:

start_element h1
characters Hello
end_element h1

如果我将片段包装在html 和body 标记中,则整个输入都会被解析。

有没有办法在 HTML 片段上使用 SAX 样式解析器?

【问题讨论】:

    标签: html ruby nokogiri sax fragment


    【解决方案1】:

    您需要将片段包装在根元素中:

    <div>
    <h1>Hello</h1> 
    <p>Hi.</p>
    </div>
    

    应该可以解决你的问题。

    【讨论】:

      猜你喜欢
      • 2011-02-19
      • 2012-09-14
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2012-08-27
      相关资源
      最近更新 更多