Aktualizacja: Właściwie emitujące XML, to najlepiej użyć clojure.contrib.lazy-xml/emit
, ponieważ clojure.xml/emit
jest obecnie prawdopodobnie złamać rzeczy! Zobacz mój komentarz poniżej.
(Pozostawiając tę odpowiedź tutaj teraz jako ostrzeżenie.)
Jeśli dobrze rozumiem, główny nacisk w rachubę ma do czynienia z włączeniem (ewentualnie zmutowany) reprezentacja XML z powrotem do Tekst XML?
Jeśli tak, rzucić okiem na clojure.xml/emit
i clojure.xml/emit-element
:
user> (with-out-str (xml/emit {:tag :foo :attrs {:bar "quux"}}))
"<?xml version='1.0' encoding='UTF-8'?>\n<foo bar='quux'/>\n"
(with-out-str
przechwytuje wydruki i owija go jako ciąg znaków, z jakiegoś powodu xml/emit
wydruki XML, więc przydaje się tutaj. Będziesz chciał użyć emit-element
, jeśli <?xml version='1.0' encoding='UTF-8'?>
nie jest tym, czego potrzebujesz.)
Dla dobra przyszłych czytelników: Wydaje się, że jest to bardzo ograniczone pod względem użyteczności, ponieważ 'clojure.xml/emit' obecnie ma bardzo naiwne podejście do swojej pracy i np. zaniedbuje kodowanie rzeczy jako elementów XML ... Zamiast tego użyj 'clojure.contrib.lazy-xml/emit'. Zobacz także moją odpowiedź na kolejne pytanie: http://stackoverflow.com/questions/2463129/roundtripping-xml-in-clojure-using-clojure-xml-parse-and-clojure-xml-emit/2463768#2463768 –
lazy-xml jest teraz https://github.com/clojure/data.xml/ – sventechie