clojure.xml/emit
печатает новую строку вокруг содержимого строки в теге, подобном этому.
user=> (require '[clojure.xml :as xml])
user=> (xml/emit-element {:tag :example :content ["Example"]})
<example>
Example
</example>
nil
Я ожидаю "<example>Example</example>"
, а не "<example>\nExample\n</example>"
.
XML спецификация гласит:
2.10 Обработка пробелов
Процессор XML должен всегда передавать все символы в документе, которые не размечены, приложению. Проверяющий процессор XML также должен сообщить приложению, какие из этих символов представляют собой пробелы, появляющиеся в содержимом элемента.
Расширяемый язык разметки (XML) 1.0 (пятое издание)
Так что они не равны.
В исходном коде xml.clj
они называют (println ">")
вместо print
.
clojure / src /clj/clojure/xml.clj
Я использую пользовательскую версию для замены println
на print
.
Интересно, почему они печатают новые строки. Я вижу git blame
но намека нет. Кто-нибудь знает?