Как использовать Sinatra для обслуживания документов XML? - PullRequest
13 голосов
/ 19 ноября 2010

У меня есть несколько XML-документов, которые я хотел бы отправить на сервер из Синатры. Я немного искал, но ничего конкретного не нашел. Я нашел камень строителя, но я не хочу создавать документ с нуля.

Я пытался сделать что-то подобное

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

но это добавит HTML-теги вокруг него. Это, наверное, что-то действительно простое, что я скучаю. Можете ли вы указать мне правильное направление, пожалуйста?

Ответы [ 2 ]

33 голосов
/ 19 ноября 2010

С Синатрой все очень просто:

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

При получении '/' ответом будет XML "<name>Luis</name><age>99</age>" с правильным типом содержимого.

2 голосов
/ 01 июля 2016

Как указано ниже, помимо ответа Вагнера на добавление типа контента, вы должны включить только один корневой элемент XML http://www.w3schools.com/xml/xml_syntax.asp, в противном случае Синатра вызовет исключение.

Итак, полный ответ:

get '/'
  content_type 'text/xml'
  '<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><name>My name</name> <zage>90</age></root>'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...