2010-11-19 33 views
12

Tengo algunos documentos XML que me gustaría server de Sinatra. Hice algunas búsquedas pero no pude encontrar nada específico. Encontré la gema del constructor, pero no quiero construir el documento desde cero.¿Cómo uso Sinatra para servir documentos XML?

he tratado de hacer algo como esto

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

sino que añadirá las etiquetas HTML a su alrededor. Probablemente es algo realmente básico que me estoy perdiendo. ¿Puedes señalarme en la dirección correcta, por favor?

+0

¿Cuál es su resultado esperado de get '/' xml = "Mi nombre 90" xml cuerpo? – BlueDog

+0

la publicación está envolviendo las etiquetas xml. Es algo como esto – Luis

+0

"nombre" "90" Luis

Respuesta

31

Esto es muy simple, con Sinatra:

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

En get '/' la respuesta será el XML "<name>Luis</name><age>99</age>" con el content_type correcta.

+0

Sabía que era algo simple ... ¡Debería haber pensado en eso! – Luis

+1

Deberías aceptar su respuesta. :) (haga clic en la marca de verificación lil debajo del control de votación) –

+1

Sí, ¡debe aceptar la respuesta! :) – 19WAS85

2

Como se explica a continuación, además de la respuesta de Wagner al agregar el tipo de contenido, debe incluir solo un elemento raíz XML http://www.w3schools.com/xml/xml_syntax.asp, de lo contrario, Sinatra generará una excepción.

Así que la respuesta completa es:

get '/' 
    content_type 'text/xml' 
    '<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><name>My name</name> <zage>90</age></root>' 
end 
Cuestiones relacionadas