2016-12-16 2 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 

Я хочу элемент «описание» быть дочерним элементом «общего» элемента (а так же я хочу, чтобы элемент «строка», чтобы быть потомком элемента «Описание»). Однако происходит то, что элемент описания отображается как один из общих элементов. Как создать элемент в виде дочернего элемента вместо брата?

+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 

тогда все работало по мере создания дочерних узлов.

Смежные вопросы