2012-02-03 8 views
0

誰かが私にこの理由を教えてください。私は自分のコントローラにcreate_fileアクションを持っています。XMLファイルがきれいでない

file = File.new("xml/experiment.xml", "w") 
    # creating the builder file for the xml 
    xml = Builder::XmlMarkup.new :target => file 
    # xml tags 
    xml.instruct! 
    xml.EXPERIMENT_SET { 
    xml.alias("#{@experiment.alias}") 
    xml.center_name "#{@experiment.center_name}" 
    } 

このような出力が得られます。

<?xml version="1.0" encoding="UTF-8"?><EXPERIMENT_SET><alias>ZAP430</alias><center_name></center_name></EXPERIMENT_‌​SET> 

これはきちんとしたXMLではないため、すべてのタグが1行で表示されます。

+0

http://stackoverflow.com/questions/1316020/rails-xml-builder-with-no-pretty-printing-ie-minified-xml –

+0

の重複返信Tichodromaのおかげで。残念ながら私は解決策を理解できませんでした。私のコードで何をすべきかを教えてください。私はRORの初心者です。 削除:ターゲットは=>ファイルも助けない、どちらも行いません。インデント=> 2つの作品 – A1aks

答えて

0

使用パラメータ:indentXmlMarkupのインスタンスを作成中。 [Builder::XmlMarkup][1]のドキュメントから

xm = Builder.new(:indent=>2) 
# xm will produce nicely formatted and indented XML. 

xm = Builder.new(:indent=>2, :margin=>4) 
# xm will produce nicely formatted and indented XML with 2 
# spaces per indent and an over all indentation level of 4. 

builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2) 
builder.name { |b| b.first("Jim"); b.last("Weirich) } 
# prints: 
#  <name> 
#  <first>Jim</first> 
#  <last>Weirich</last> 
#  </name> 
+0

はとても多くのTichodroma、ありがとうございました。それは完璧にうまくいった。あなたの助けに感謝。私は一人でXMLタグのために、部分的またはそのような何かをレンダリングすることができれば 乾杯 – A1aks

+0

Tichodroma、私は基本的に単一のアクションから一度に複数のXMLファイルを作成していますし、私はそこに可能性があれば知りたいのですが、私に言うことができるしてください私はコントローラを短く、きれいに保つことができるところであればどこでも。あなたの提案を感謝します。乾杯 – A1aks

関連する問題