如何美化rails应用程序中的xml代码

Seb*_*ler 15 ruby xml ruby-on-rails

是否有一种简单的方法可以将未格式化的xml字符串打印到rails应用程序中的ruby屏幕上?像xml美化的东西?

Laa*_*aas 19

Ruby核心REXML :: Document有漂亮的打印:

REXML::Document#write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
Run Code Online (Sandbox Code Playgroud)

缩进:整数.如果为-1,则不使用缩进; 否则,缩进将是此数量的空格的两倍,并且子项将缩进额外的数量.对于值3,每个项目将缩进3个级别,或6个空格(2*3).默认为-1

一个例子:

require "rexml/document"

doc = REXML::Document.new "<a><b><c>TExt</c><d /></b><b><d/></b></a>"
out = ""
doc.write(out, 1)
puts out
Run Code Online (Sandbox Code Playgroud)

生产:

<a>
 <b>
  <c>
   TExt
  </c>
  <d/>
 </b>
 <b>
  <d/>
 </b>
</a>
Run Code Online (Sandbox Code Playgroud)

编辑: Rails已经加载了REXML,因此您只需要生成新文档,然后将漂亮的打印XML写入某些字符串,然后可以嵌入到<pre>标记中.