【问题标题】:Remove Certain HTML Tags using Ruby使用 Ruby 删除某些 HTML 标签
【发布时间】:2013-08-01 10:08:38
【问题描述】:

如何在 Ruby 中按名称删除某些 HTML 标记?

例如:

string = "<!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>"

string.magic_method("h1") #=> "<!DOCTYPE html><html><body><p>My first paragraph.</p></body></html>"

我写了一些正则表达式来做这件事,但想知道是否有一个库或本地方法可以做同样的事情。

【问题讨论】:

    标签: html ruby regex html-parsing


    【解决方案1】:

    使用宝石nokogiri。它有一些很好的方法来操作 HTML 和 XML,包括删除标签的方法,你可以在这里看到:How do I remove a node with Nokogiri?

    Github:https://github.com/sparklemotion/nokogiri

    【讨论】:

      【解决方案2】:

      使用Nokogiri

      require 'nokogiri'
      
      doc = Nokogiri::HTML <<-_HTML_
      <!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>
      _HTML_
      
      doc.at('h1')
      # => #(Element:0x4d2f006 {
      #      name = "h1",
      #      children = [ #(Text "My First Heading")]
      #      })
      
      doc.at('h1').unlink
      puts doc.to_html
      # >> <!DOCTYPE html>
      # >> <html><body><p>My first paragraph.</p></body></html>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-23
        • 2014-12-01
        • 1970-01-01
        • 2020-07-05
        • 1970-01-01
        • 2011-06-20
        • 2011-11-12
        • 1970-01-01
        相关资源
        最近更新 更多