如何在 Nokogiri 节点中创建子元素?

Dav*_*ave 4 ruby xml children nokogiri ruby-on-rails-4

我在 Nokogiri 上使用 Rails 4.2.7。我在创建子节点时遇到问题。我有以下代码

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
Run Code Online (Sandbox Code Playgroud)

我希望“description”元素成为“general”元素的子元素(同样我希望“string”元素成为“description”元素的子元素)。然而,正在发生的事情是描述元素作为通用元素的兄弟元素出现。如何使元素显示为子元素而不是兄弟元素?

the*_*Man 6

教程显示如何做到这一点,但简单的例子是:

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"
Run Code Online (Sandbox Code Playgroud)

Nokogiri 可以使用包含要添加的标记或节点的字符串轻松构建节点。

您应该能够轻松地在此基础上进行构建。