我想将一个节点附加到文档,但是作为body节点的子节点。当我使用<<或推,它只是在身体节点之后添加节点,而不是它的子节点:
xml = zip.read("word/document.xml")
doc = Nokogiri::XML(xml) {|x| x.noent}
body = doc.xpath("//w:body")
node = Nokogiri::XML::Node.new("<w:p w14:paraId=\"322D15A5\" w14:textId=\"3D86357C\" w:rsidR=\"00E1538A\" w:rsidRDefault=\"002D3A2C\">Hello World\n</w:p>",doc)
body << node
如何将节点添加为正文的子节点而不是兄弟节点?
答案 0 :(得分:1)
我明白了。 body是Nokogiri :: XML :: NodeSet容器。可以直观地认为你会将其附加到那个,但这并不起作用。当你达到更深层次时,你会得到身体元素:
> body.first.class
=> Nokogiri::XML::Element
为了更好或更好,通过将新节点附加到该主体节点:
body.first << node
您可以获得所需的嵌套结果。