Is there a simple way to print an unformated xml string to screen in a ruby on rails application? Something like a xml beautifier?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Ruby core REXML::Document has pretty printing:
REXML::Document#write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
indent: An integer. If -1, no indenting will be used; otherwise, the indentation will be twice this number of spaces, and children will be indented an additional amount. For a value of 3, every item will be indented 3 more levels, or 6 more spaces (2 * 3). Defaults to -1
An example:
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
Produces:
<a> <b> <c> TExt </c> <d/> </b> <b> <d/> </b> </a>
EDIT: Rails has already REXML loaded, so you only have to produce new document and then write the pretty printed XML to some string which then can be embedded in a <pre> tag.
回答2:
What about the Nokogiri gem? Here is an example use.