有没有办法将Nokogiri XML节点换成另一个?

时间:2018-02-02 04:49:20

标签: xml nokogiri

例如,如果我有下面的Nokogiri :: XML :: Nodeset,我该如何换出第二个节点(整个第二个dict)来交换节点?有没有办法不经过每个字段并替换它们(因为在实际的XML中,每个字典有数百个字段)?

<array>
<dict>
  <key>Name</key>
  <string>Test</string>
</dict>
<dict>
  <key>Phone</key>
  <string>123-456-7890</string>
</dict>
</array>

我要交换的Nokogiri :: XML :: Element:

<dict>
  <key>Email</key>
  <string>skafjdksf@sdjlf.com</string>
</dict>

1 个答案:

答案 0 :(得分:0)

我自己想出了答案,以防将来有人需要这些信息。

将节点与替换节点交换出来:

nodeToSwapOut.previous.next.replace(newNode)

然后将新XML写入新文件:

File.new(newFile, 'w')
   File.open(newFile, 'w') do |f|
   f.write(oldFile.to_xml)
end