Rexml - красивая печать с текстовыми встроенными и дочерними тегами с отступом

Я создаю XML-документ с помощью REXML и хочу вывести текст в определенном путь. Документ представляет собой список тегов CuePoint, а те, которые я создал с помощью Element.new и add_element, собраны вместе в одну строку, например: (stackoverflow разделил их здесь на две строки, но представьте, что все следующее одна строка):

event inst_50


  
  
    event
  
  
    inst_50
  


  
  
    event
  
  
    inst_50
  

Это нежелательно, потому что он вставляет пробелы в содержимое тегов, которые содержат только текст. то есть содержимое тега Name теперь "\ n inst_50 \ n" или что-то в этом роде. Это взорвет приложение, которое читает xml.

Кто-нибудь знает, как я могу отформатировать выходной файл так, как я хочу?

Благодарен за любой совет, max

EDIT - Я только что нашел ответ на ruby-forum через другое сообщение StackOverflow: http://www.ruby-forum.com/topic/195353

  formatter = REXML::Formatters::Pretty.new
  formatter.compact = true
  File.open(@xml_file,"w"){|file| file.puts formatter.write(xml.root,"")}

Результат вроде


  
  event
  inst_45_off


  
  event
  inst_45

Между тегами CuePoint нет лишней строки, но это нормально для меня. Я оставляю этот вопрос здесь на случай, если кто-нибудь еще наткнется на него.

9
задан Max Williams 19 January 2011 в 16:45
поделиться