我试图在根节点下添加子节点..我尝试了下面的xml,但这不起作用.我是Ruby和Nokogiri的新手
builder = Nokogiri::XML::Builder.with(@doc) do |xml|
nodes = Nokogiri::XML::NodeSet.new(@doc, [])
[].each {|nodes_one_by_one|
<< nodes_one_by_one.Book
<< nodes_one_by_one.Pen
}
end
Run Code Online (Sandbox Code Playgroud)
我需要像这样在根节点下面添加节点
<Catalog>
<Book>abc</Book>
<Book_Author>Benjamin</Book_author>
Run Code Online (Sandbox Code Playgroud)
这对我有用..但我真正需要的是在文档中的特定位置之后添加这些节点.
<Catalog>
<!--
<Book>abc</Book>
<Book_Author>Benjamin</Book_author>
-->
<Interface></Interface>
<Dialog></Dialog>
<Manifest></Manifest>
</Catalog>
Run Code Online (Sandbox Code Playgroud)
我尝试使用at_xpath('// Catlog'),但它在元素的末尾添加(如你所说)
<Catalog>
<Interface></Interface>
<Dialog></Dialog>
<Manifest></Manifest>
<!--
<Book>abc</Book>
<Book_Author>Benjamin</Book_author>
-->
Run Code Online (Sandbox Code Playgroud)
book = Nokogiri::XML::Node.new('book', doc)
pen = Nokogiri::XML::Node.new('pen', doc)
.
.
Run Code Online (Sandbox Code Playgroud)
无论如何使用"each"循环而不是逐个添加..我试过这种方式,但这不起作用.
builder = Nokogiri :: XML :: Builder.with(doc)do | xml |
nodes = Nokogiri :: XML :: Node.new(doc,[])
[] .each {| child_list_element |
child_list_element.Book"value"child_list_element.Pen"value"child_list_element.Diary"value"child_list_element.Pen_stand"value"child_list_element.Pencil"value"...
}
end
doc << …