我正在尝试编写一个读取本地HTML文件的Ruby脚本,并在某个#divid之后插入一些HTML(基本上是一个字符串)。
我有点像菜鸟,所以请不要犹豫,在这里输入一些代码。
由于
答案 0 :(得分:1)
我能够通过以下方式实现这一目标......
doc = Nokogiri::HTML(open('file.html'))
data = "<div>something</div>"
doc.children.css("#divid").first.add_next_sibling(data)
然后(结束)用相同的数据写文件......
File.open("file.html", 'w') {|f| f.write(doc.to_html) }
答案 1 :(得分:0)
这是更正确的方法:
html = '<html><body><div id="certaindivid">blah</div></body></html>'
doc = Nokogiri::HTML(html)
doc.at_css('div#certaindivid').add_next_sibling('<div>junk goes here</div>')
print doc.to_html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<div id="certaindivid">blah</div>
<div>junk goes here</div>
</body></html>
请注意使用.at_css()
,它会找到目标节点的第一个匹配项并将其返回,从而避免获取节点集,并使您无需获取.first()
节点。