Nokogiri::XML::Builder
実際には、XML ファイルを編集するときではなく、新しい XML ファイルを作成するときにのみ使用されます。
また、コードは XML をロードし、新しいルート ノード (ルート) に配置し、新しい子 (データ ノード) を追加します。これは本当に望ましい動作ですか?
通常、次のようにノードを追加します。
doc = Nokogiri::XML(IO.read("test.xml"))
name_node = Nokogiri::XML::Node.new("name",doc)
name_node.content = "Name"
data_node = Nokogiri::XML::Node.new("data",doc)
data_node.add_child(name_node)
doc.root.add_child(data_node)
file = File.open("test.xml",'w')
file.puts doc.to_xml
file.close
これは私には少し独特のように見えるため、新しいルートノードを作成していません...
Nokogiri-Documentationも試してみてください。かなり広範囲です。
data から、およびdataNokogiri::XML::Builder
を含むすべての欠点を作成するために使用する他の方法があります。これは、この組み合わせたアプローチの例になります。
builder = Nokogiri::XML::Builder.new do
data do
name "Name"
end
end
doc = Nokogiri::XML(IO.read("test.xml"))
doc.root.add_child builder.doc.root
file = File.open("test.xml",'w')
file.puts doc.to_xml
file.close