繁体   English   中英

使用nokogiri将xml节点附加到文档

[英]append xml node to the document with nokogiri

我想将一个节点附加到文档中,但作为正文节点的子节点。 当我使用<<或push时,它只是将节点添加到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

如何将节点添加为身体的子代而不是同级的子代?

我想到了。 正文是Nokogiri :: XML :: NodeSet容器。 可以直观地认为您可以将其附加到此,但是那没有用。 当您更深一层时,您将获得body元素本身:

> body.first.class
=> Nokogiri::XML::Element 

为了更好或更好,将新节点附加到该主体节点:

body.first << node

您将获得所需的嵌套结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM