2010-11-19 11 views
12

Mam niektóre dokumenty XML, które chciałbym serwer z Sinatra. Szukałem trochę, ale nie mogłem znaleźć niczego konkretnego. Znalazłem klejnot budowniczego, ale nie chcę budować dokumentu od podstaw.Jak używać Sinatry do serwowania dokumentów XML?

Starałem się zrobić coś takiego

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

ale doda znaczniki HTML wokół niego. To chyba coś naprawdę podstawowego, czego mi brakuje. Czy możesz wskazać mi właściwy kierunek, proszę?

+0

Jaki jest Twój spodziewane wyjście get '/' xml = "Nazywam 90" xml ciało? – BlueDog

+0

post jest zawijanie znaczników xml. To coś takiego: – Luis

+0

"nazwa" "90" Luis

Odpowiedz

31

To jest bardzo proste z Sinatra:

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

On Get '/' odpowiedź będzie XML "<name>Luis</name><age>99</age>" z prawidłowym content_type.

+0

Wiedziałem, że to było coś prostego ... Powinienem o tym pomyśleć! – Luis

+1

Powinieneś przyjąć jego odpowiedź. :) (kliknij znak wyboru lil pod kontrolą głosowania) –

+1

Tak, powinieneś zaakceptować odpowiedź! :) – 19WAS85

2

Jak wyjaśniono poniżej, oprócz odpowiedzi Wagnera na dodanie typu zawartości, należy uwzględnić tylko jeden element główny XML, w przeciwnym razie Sinatra zgłosi wyjątek.

Więc pełna odpowiedź brzmi:

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