Voglio aggiungere un nodo al documento, ma come figlio del nodo del corpo. Quando uso << o push, aggiunge semplicemente il nodo dopo il nodo del corpo, non come un bambino:
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 Worldn</w:p>",doc)
body << node
Come posso aggiungere il nodo come figlio di un corpo piuttosto che come un fratello?
risposte:
1 per risposta № 1L'avevo capito. body è il contenitore Nokogiri :: XML :: NodeSet. È intuitivo pensare che lo si accludesse a questo, ma ciò non funzionava: quando si raggiunge un livello più profondo, si ottiene l'elemento stesso del corpo:
> body.first.class
=> Nokogiri::XML::Element
E per meglio o wose, aggiungendo il nuovo nodo a quel nodo del corpo:
body.first << node
Ottieni il risultato annidato desiderato.