2016-12-16 22 views
0

我正在使用Rails 4.2.7与Nokogiri。我在创建子节点时遇到了问题。我有以下代码如何在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”元素是“一般”元素的子元素(类似我想要的“字符串”元素是“说明”元素的子)。然而,正在发生的事情是,描述元素作为一般元素的兄弟出现。我如何让元素显示为一个孩子而不是兄弟姐妹?

+0

阅读“[mcve]”。什么是证明问题的最小XML? –

回答

1

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可以很容易地使用包含你要添加的标记或节点的字符串建立节点。

你应该能够轻松地建立在此基础之上。

0

当我改变

general = doc.xpath("//lomimscc:general") 

general = doc.xpath("//lomimscc:general").first 

那么一切就担任创建子节点。

相关问题