如何使用Nokogiri::XML::Text更改节点的文本值参数数量错误



我有一个html文件,看起来像这个

<html>
  <head>
    <title><* page.title *></title>
  </head>
  <body>
    <h1>h<* recipe.name *></h1>
    <* EACH recipes recipe *>
      <* food.name *>
      <* EACH recipe.nicknames nickname *>
        <p><* things to be replaced *></p>
      <* ENDEACH *>
    <* ENDEACH *>
  </body>
</html>

我有一个json文件。我正在使用json ruby library来解析它,并将其作为散列返回。我需要使用这些键并将值插入到这个html文件中。

到目前为止,我的ruby脚本看起来像这个

require 'rubygems'
require 'nokogiri'  
require 'json' 
data = File.read("data.json")
obj = JSON.parse(data)
puts obj.values
page = Nokogiri::HTML(open("somethingtemplate"))
# base = Nokogiri::XML::Node.new
# base["href"] = "http://google.com"
# page.xpath('//body/h1').each do |node|
#   node.add_child(base)
#   puts child.text
# end
 builder = Nokogiri::XML::Text.new do page
   page.body {
    page.h1
    page.text "hello world"
   }
 end 
 puts builder.doc

我在这里看到了某人的例子->在Nokogiri 中的特定XML标记后插入文本

我收到这个错误

 `new': wrong number of arguments (0 for 2+) (ArgumentError)

文档没有示例,对我不起作用。

您使用的是类Nokogiri::XML::Text,但需要像示例中那样使用Nokogiri::XML::BuilderNokogiri::XML::Text.new接受2个以上参数http://nokogiri.org/Nokogiri/XML/Text.html

相关内容

  • 没有找到相关文章