将div添加到Nokogiri XML NodeSet

时间:2016-12-21 21:04:55

标签: html ruby xml nokogiri

我只想添加一个"虚拟"分成这个HTML片段的头部,我已经尝试了100种方式,但没有任何工作。

当我将其拉下来时,这就是head的样子:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Horraa</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
</head>

我只是想放入这个虚拟div:

<div> id='todd' class='{{customer.name}} {{shop.domain}}'</div>

所以最终的结果就是这个

<head>
<div> id='todd' class='{{customer.name}} {{shop.domain}}'</div>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Horraa</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
</head>

这是我的Nokogiri

page = Nokogiri::HTML(todd)
head = page.css('head')

Head现在是Nokogiri::XML::NodeSet

这不起作用

div = "<div> id='todd' class='{{customer.name}} {{shop.domain}}'</div>"
head.push(div)

或者这个

div = "<div> id='todd' class='{{customer.name}} {{shop.domain}}'</div>"
update = Nokogiri::XML::Node.new('div', todd)
update['class'] = '{{customer.name}} {{shop.domain}}'
head.add_previous_sibling(update)
head << update

或者

head.add_next_sibling "<div> id='todd' class='{{customer.name}} {{shop.domain}}'</div>"

我已经尝试了其他10个人,但这已经很久了......我哪里误入歧途?

1 个答案:

答案 0 :(得分:1)

试试这个

html_string = "<div id='todd' class='{{customer.name}} {{shop.domain}}'></div>"
page.at('head').add_child(html_string)