4

我有一个 xml 文件,我想向用户显示(呈现)它即我想保留标签。我应该如何在 RoR 中做?

我试过render :file=>"/path/to/file.xml"了,但是标签<product>消失了。

//file.xml
<product>car</product>

更新:我发现行为依赖于浏览器

  • Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3

    标签被保留。

  • Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15

    标签消失了。

4

4 回答 4

7

你有没有尝试添加

:content_type => 'application/xml'

到你的渲染线?

render :file=>"/path/to/file.xml", :content_type => 'application/xml'
于 2009-12-04T09:39:02.110 回答
3

不同的浏览器以不同的方式显示 XML。有些人试图变得聪明,有些人则不然。你不能依赖它。如果要“按原样”显示 XML,则需要将转义的 XML 呈现为文本。

在您的控制器操作中,您必须调用它:

render :text => @template.h(File.read("/path/to/file.xml"))

这将为您转义所有 HTML 并充当纯文本。

于 2009-12-06T19:25:04.823 回答
0

在文件中添加一个 xml prolog 行(除了来自 jhwist 的内容类型建议)。

<?xml version="1.0"?>
于 2009-12-04T14:37:26.690 回答
0

或者更好

render :text => File.read("/path/to/file.xml"), :content_type => 'application/xml'
于 2012-05-30T14:20:37.340 回答