2

在我的 Rails 应用程序中,我试图在视图部分模板中显示 XML 文件的内容。我想显示整个 XML 文件的实际标记——标签、正确格式化的缩进等——而不仅仅是文本数据或特定节点。

XML 文件位于另一台服务器上,所以首先我必须获取该文件。到目前为止,这是我的方法,它显示标签但不格式化它们——它只显示在一个完整的行中。

在我的控制器中:

@xml_file_path = 'some file path'
@response = Typhoeus::Request.get(@xml_file_path)

在视图模板中:

<%= render :text => @response.body, :content_type => 'application/xml' %>

这会导致 XML 显示在一行上,如下所示:

<mods:mods><mods:physicalDescription<mods:internetMediaType>image/jpeg</mods:internetMediaType></mods:physicalDescription></mods:mods>

但我希望它通过换行符和缩进等显示给用户,如下所示:

<mods:mods>
  <mods:physicalDescription>
    <mods:internetMediaType>image/jpeg</mods:internetMediaType>
  </mods:physicalDescription>
</mods:mods>

我怎样才能做到这一点?我认为 ' render :text' 在这里不是正确的方法,但不确定什么会更好。任何建议表示赞赏。我对 Rails 很陌生。

提前致谢!

4

1 回答 1

0

这个问题和你的很相似: How to beautify xml code in rails application

您可以使用 REXML 创建 XML 数据字符串,然后使用 'pretty printing' 参数将其写入。然后将字符串包装在<pre>视图中的标记中。

于 2013-06-13T18:58:43.717 回答