Sotto andata e ritorno produce invaild xml in quanto il risultato non è preceduto da escape, vale a dire che i valori degli attributi contengono 'invece di apos ;. Sto facendo qualcosa di sbagliato o si tratta di un bug?Roundripping xml in Clojure utilizzando clojure.xml/parse e clojure.xml/emit
(ns xml-test
(:require [clojure.xml :as xml])
(:require [clojure.zip :as zip]))
(def test-xml "<?xml version="1.0" encoding="UTF-8"?> <main> <item attr=''test''> </item> </main>")
(def s (ByteArrayInputStream. (.getBytes test-xml "UTF-8")))
(xml/emit (zip/root (zip/xml-zip (clojure.xml/parse s))))
output:
<?xml version='1.0' encoding='UTF-8'?>
<main>
<item attr=''test''/>
</main>
nil
Per quanto posso dire, questo è ancora un bug con 'xml/emit' in Clojure 1.2. –