web-dev-qa-db-ja.com

ruby

私は完全にRubyが初めてです。必要なのは、単純なXMLファイルを作成することだけです。

<?xml version="1.0" encoding="ASCII"?>
<product>
   <name>Test</name>
</product>

それでおしまい。

35
Phete

Builderが最初の停止点になるはずです。

require 'builder'

def product_xml
  xml = Builder::XmlMarkup.new( :indent => 2 )
  xml.instruct! :xml, :encoding => "ASCII"
  xml.product do |p|
    p.name "Test"
  end
end

puts product_xml

これを生成します:

<?xml version="1.0" encoding="ASCII"?>
<product>
  <name>Test</name>
</product>

それは私には正しいように見えます。

一部のビルダー参照:

66
Mike Woodhouse

単に Nokogiri :: XML :: Builder

require 'nokogiri'

builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
  xml.root {
    xml.products {
      xml.widget {
        xml.id_ "10"
        xml.name "Awesome widget"
      }
    }
  }
end
puts builder.to_xml

出力されます:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <products>
    <widget>
      <id>10</id>
      <name>Awesome widget</name>
    </widget>
  </products>
</root>
17
itsnikolay

builder を使用してxmlを生成できます。

8
sepp2k

RubyでXMLを構築するためのオプションがいくつかあります

[〜#〜] rexml [〜#〜] -組み込みですが、特に大きなドキュメントを処理する場合は非常に遅くなります

ノコギリ -より新しく、より速く、rubymemとしてインストール

LibXML-Ruby -C libxmlライブラリ上に構築され、rubygemとしてもインストールされます

Rubygemsをインストールできない場合は、REXMLが最適なオプションです。大規模で複雑なXMLドキュメントを作成する場合は、NokogiriまたはLibXML-Rubyを使用します。

4
Peer Allan