我不确定我的问题名称。我有一个使用nokogiri的HTML页面。现在我想从该页面上删除一些标签。在将html转换为字符串后,我尝试使用ruby的delete方法 - 虽然它删除了我输入的所有字母。我得到的最好结果是使用.gsub('<stuff>', '')
虽然它仍留有一些空间。是否有可能实际切割字符串的东西?具体的解剖?
另一个问题 - 我可以删除空格吗?
到目前为止我做了什么:
doc = Nokogiri::HTML(open("http://www.example.com/"))
tester = doc.css(".example").to_s.gsub('<div class="example">', '')
答案 0 :(得分:1)
我建议尝试在xml树级别而不是字符串编辑。 我认为nokogiri api为你提供了一些工具。
另一种方法可能是使用css或xpath选择所需的数据,而不是删除不需要的部分?
还有一个用于规范字符串空间的xpath函数,有一个例子in this question
一些nokogiri的帮助:
答案 1 :(得分:1)
查看Nokogiri的教程。特别是,您想阅读"Modifying an HTML / XML Document", Changing text contents。
Nokogiri的XML访问器非常友好,因为您不需要使用XPath。您也可以使用CSS访问器,对于那些整天不使用XML的人来说,他们可以提供很多帮助。
在该特定示例中,他们使用at_css
方法,该方法搜索目标的第一次出现。您有许多替代方法,即同义词:at
,%
,at_css
和at_xpath
处理“查找第一个”案例。 search
,css
,xpath
,/
类似地处理“查找所有事件”。
例如:
require 'nokogiri'
html = '<h1>Snap, Crackle and Pop</h1>'
doc = Nokogiri::HTML(html)
h1 = doc.at('h1')
h1.content = h1.content[0, h1.content.length - 3] + '...'
puts doc.to_html
>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
>> <html><body><h1>Snap, Crackle and ...</h1></body></html>
在Nokogiri中创建一个新的HTML文档,搜索第一个H1,并修剪其内容中的尾随三个字符,用省略号替换它们。