0

我想放入一个简单的 API 来响应带有查询字符串的 GET 请求。但我想返回 XML,而不是 HTML。

我什至想在浏览器中对此进行测试,以便如果我键入 URL 和查询字符串,然后在响应中看到 XML。

我只是通过渲染来获得它:text,但我的 xml 正在做两件事:

1. All tag names are being downcased.

2. My xml is being wrapped in an HTML container (HTML, HEAD, BODY, etc.)

我只需要摆脱那个 HTML 包装器。

4

4 回答 4

2

这个对我有用:

respond_to do |format|
  format.xml do
    headers['Content-Disposition'] = 'attachment;filename="katalog.xml"'
    render :xml => xml_array.to_xml(:skip_types => true, :root => "Items"),
           :layout => false,
           :content_type => Mime::XML
  end
end

您应该能够xml_array.to_xml(:skip_types => true, :root => "Items")用您的字符串替换,因为 .to_xml 除了生成字符串(并确保它是正确的 XML)之外什么都不做

于 2013-04-24T15:30:53.320 回答
1

您可以简单地呈现为 xml(在您的控制器中):

render xml: @your_object
于 2013-04-24T15:15:53.903 回答
0

在 Rails 5.2.x 上,这就是你的做法

class UserController < ApplicationController
  def view
    @user = User.find(params[:id])
    render formats: [:xml]
  end
end

在 app/views/user/view.xml 上有相应的视图

xml.User do
  xml.name @user.name
end
于 2019-09-05T21:10:13.340 回答
0

布局错误,仅:[:action]

这将删除所有与布局相关的代码。

于 2017-04-21T20:34:39.897 回答