Обновление: На самом деле, для передачи XML лучше использовать clojure.contrib.lazy-xml/emit
, потому что clojure.xml/emit
в настоящее время может сломать вещи! Смотрите мой комментарий ниже.
(оставив здесь этот ответ как предупреждение.)
Если я правильно понимаю, основная суть вопроса связана с превращением (возможно мутировавшего) представления XML обратно в текст XML?
Если это так, взгляните на clojure.xml/emit
и 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
захватывает напечатанный вывод и упаковывает его в строку; по какой-то причине xml/emit
печатает xml, поэтому он пригодится здесь. Вы можете использовать emit-element
, если <?xml version='1.0' encoding='UTF-8'?>
что хочешь.)