如何使用Sinatra来提供XML文档?

15

我有一些XML文档,希望从Sinatra服务器提供。我进行了一些搜索,但没有找到特定的内容。

我找到了builder gem,但我不想从头开始构建文档。

我尝试做这样的事情:

get '/'
  xml = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> <name>My name</name> <age>90</age>'
  body xml
end

但是这会在它周围添加HTML标签。我可能错过了一些非常基本的东西。你能指点我正确的方向吗?


请问您对于执行 get '/' xml = "My name 90" body xml 的预期输出是什么? - BlueDog
帖子正在包装XML标签。就像这样。 - Luis
<name> "姓名" </name> <age>"90岁"</age> - Luis
2个回答

38

使用Sinatra非常简单:

get '/' do
  content_type 'text/xml'
  "<name>Luis</name><age>99</age>"
end

访问'/'时,响应将是XML "<name>Luis</name><age>99</age>",且正确的content_type。


我知道这是某个简单的东西... 应该早点想到! - Luis
1
我希望几年后能够代表提问者接受答案。 - D. Patrick
这个答案并不完全正确,在Sinatra级别上有一个例外。XML应该只有一个根元素:http://www.w3schools.com/xml/xml_syntax.asp - naviram

2
如下所答,在添加内容类型的同时,您必须仅包含一个XML根元素 http://www.w3schools.com/xml/xml_syntax.asp ,否则Sinatra将引发异常。
因此,完整的答案是:
get '/'
  content_type 'text/xml'
  '<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><name>My name</name> <zage>90</age></root>'
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接