我正在使用Rails 4.2.7与Nokogiri。我在创建子节点时遇到了麻烦。我有以下代码
general = doc.xpath("//lomimscc:general")
description = Nokogiri::XML::Node.new "lomimscc:description", doc
string = Nokogiri::XML::Node.new "lomimscc:string", doc
string.content = scenario.abstract
string['language'] = 'en'
description << string
general << description
我希望“description”元素是“general”元素的子元素(同样我希望“string”元素是“description”元素的子元素)。然而,正在发生的是描述元素作为一般元素的兄弟出现。如何使元素显示为孩子而不是兄弟?
答案 0 :(得分:2)
tutorials显示了如何执行此操作,但简单的示例是:
require 'nokogiri'
doc = Nokogiri::XML('<root/>')
doc.at('root').add_child('<foo/>')
doc.to_xml # => "<?xml version=\"1.0\"?>\n<root>\n <foo/>\n</root>\n"
使用包含要添加的标记或节点的字符串,Nokogiri可以轻松构建节点。
你应该能够轻松地构建它。
答案 1 :(得分:0)
当我改变时
general = doc.xpath("//lomimscc:general")
到
general = doc.xpath("//lomimscc:general").first
然后一切都可以创建子节点。